正则表达式来分析转义字符?

时间:2013-02-08 03:58:11

标签: javascript regex

我想在使用正则表达式时分析转义字符。

例如,如果字符串中包含字符(a),则正则表达式模式应匹配,但如果字符a前面有撇号('a)

,则它应该不匹配

例如:

“a” - 真实,“aba” - 真实,“汽车” - 真实,“foo” - 虚假,“c'ar” - 虚假

感谢。

2 个答案:

答案 0 :(得分:1)

使用negative lookbehind仅匹配a之前没有的'

(?<!')a

警告:一些正则表达式(JavaScript,Ruby,Tcl)do not support lookbehind

  

我想让解决方案在Javascript中运行

然后我会引用您的样板参考:Mimicking Lookbehind in JavaScript。或者,只需自己扫描字符串,而不使用正则表达式。这是一个非常简单的版本,并且可能比任何模仿版本的版本更快。

function matches_a_not_preceded_by_apos(str)
{
    var found_an_a = false;
    for (var i=1; i<str.length; i++)
    {

        if (str.charAt(i) === "a")
        {
            found_an_a = true;
            if (str.charAt(i-1) === "'")
            {
                return false;
            }
        }
    }
    return found_an_a;
}

答案 1 :(得分:0)

您可以使用此模式:

(?<!\')a

这是演示:http://regexr.com?33mue

(?<!\')是负面的后卫,如果前面没有a,则匹配\'