具有负面前瞻性的Regex不起作用
Regex with negative lookahead is not working
Edit the Expression & Text to see matches.
Expression sample
这是有两行的文本文档。我想搜索"表达式"单词,这样它就不会跟在"匹配"单词后面。因此输出将与"Expression sample"行匹配。请帮助为此生成正则表达式。我尝试过使用下面的正则表达式,但这不起作用。非常感谢
^(.*)Expression(.*)(?!matches)$
在相同的情况下,正则表达式将匹配以下内容:
Edit the Expression & Text to see matches.
^(.* )Expression(.* )(?!matches)$
正如您所看到的,第二个.*
已经消耗了字符串的其余部分,因此意味着前瞻性将不匹配(因为没有更多的字符(,并且行尾锚匹配。
要将matches
不能出现在Expression
之后的任何位置的要求编码为代码,您需要使用
Expression(?!.*matches)
相反。如果您迫切需要(.*)
,可以选择预修复和后修复。这个正则表达式本质上意味着Expression
必须在某个地方匹配,而整个子表达式.*matches
在Expression
匹配之后必须不匹配。由于该子表达式包括.*
,因此它将在其后的任何位置尝试匹配matches
,如果它只匹配一次,则先行查找将失败。
/Expression(?!.*matches)/
是答案。感谢anubhava的帮助。
相关文章:
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- mysql时间戳格式的Javascript regex不起作用
- 为什么javascript替换方法(没有regex)在angularjs表达式中不起作用来删除 
- Regex选择不起作用
- Html.TextBoxFor regex 不起作用
- Javascript Regex replace在IE10中不起作用
- Regex表达式不起作用
- 为什么这个简单的JavaScript密码regex不起作用
- regex手机验证不起作用-javascript
- Nodejs的Regex全局匹配不起作用
- Regex验证(RegularExpressionValidator和Javascript)不起作用
- regex分割在Javascript中不起作用的数字和非数字组
- 字符串过长时Regex匹配不起作用
- RegEx在Javascript中不起作用:SCRIPT5018:意外的限定符
- RegEx完全匹配^abc$dons'不起作用
- JQuery验证Regex规则不起作用
- JavaScript RegEx字符串结尾不起作用
- 具有负面前瞻性的Regex不起作用
- String.replace()不起作用,即使在其他语言中使用相同的regex
- 匹配URL的Regex不起作用