我想在使用正则表达式时分析转义字符。
例如,如果字符串中包含字符(a),则正则表达式模式应匹配,但如果字符a前面有撇号('a)
,则它应该不匹配例如:
“a” - 真实,“aba” - 真实,“汽车” - 真实,“foo” - 虚假,“c'ar” - 虚假
感谢。
答案 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)