Regex 为字符串匹配具有负查找的行
我正在尝试使用负回溯来匹配不以“zzz_2;”开头的行。为什么我的东西不管用Regex 为字符串匹配具有负查找的行,regex,Regex,我正在尝试使用负回溯来匹配不以“zzz_2;”开头的行。为什么我的东西不管用 (?<!(zzz_))\w+ (? 看啊头是你应该找的东西 ^(?!zzz_)\w+ ^将正则表达式锚定在字符串的开头 (?!zzz_)负向前瞻。检查开始后是否没有紧跟zzz_如果没有,则使用剩余的模式继续。否则将丢弃字符串 \w+匹配[a-zA-z0-9.] 问题与(? 让我们举一个例子说明它如何匹配zzz_asdf 现在正则表达式匹配从左到右从第一个字符开始 zzz_asdf | (?
(?<!(zzz_))\w+
(?
看啊头是你应该找的东西
^(?!zzz_)\w+
^
将正则表达式锚定在字符串的开头
(?!zzz_)
负向前瞻。检查开始后是否没有紧跟zzz_
如果没有,则使用剩余的模式继续。否则将丢弃字符串
\w+
匹配[a-zA-z0-9.]
问题与(?
让我们举一个例子说明它如何匹配zzz_asdf
现在正则表达式匹配从左到右从第一个字符开始
zzz_asdf
|
(?<!zzz_asdf) At the begining the look behind is true since the string starting is not presceded by zzz_ Hence it proceeds with the rest of the pattern
zzz_asdf
|
\w
zzz_asdf
|
\w and so on till the end
zzz_asdf
|
(?
如果您仍然想尝试“向后看”,您可以编写以下内容
^....(?<!zzz_)\w+
^?
这不是一个好的“回头看”的例子!有什么理由你需要这样做而不是像这样做吗?@alfasin没关系,我只是想理解消极的回头看。@emodroket:因为你的建议根本不起作用;(.你觉得[^(zzz))怎么样?)
match@JESUISCHARLIE Hm.理由很好。很有趣。谢谢。你能解释一下这是怎么回事吗?@thomas我添加了一个解释。希望它能帮助你:)@阿尔法辛:是的,这是一个前瞻性的问题。好吧,问题的标题要求的是一个前瞻性的解决方案,而不是前瞻性的。你在最后一行上发布的解决方案不会涵盖少于4个字符的行!