RegEx检查指定的单词是否不在字符串中

时间:2015-06-12 15:33:45

标签: regex

我正在尝试学习RegEx并构建一个正则表达式,该表达式将查看指定的单词是否在提供的字符串中。到目前为止,我确实在Regular Expression Info上尝试了RexxEggRegular Expression Online,但我没有找到问题的答案。

我尝试了条件和外观。让我们说我想构建一个表达式来测试不存在的单词 myword ,并在单词不在字符串中时传递表达式。我用过表达式

(?(?!myword).*)

但RegEx不管单词 myword 都会通过,这意味着字符串This is the textThis is myword the text都会通过测试。

使用否定前瞻和条件用于在 myword 不存在时测试该条件为真。 Lookahead也是零长度,因此.*将返回整个字符串。

希望有人可以提供帮助:)

2 个答案:

答案 0 :(得分:2)

你应该使用锚点和否定前瞻:

^(?!.*?myword).*$
如果在输入字符串中的任何位置找到(?!.*?myword),则

myword是一个否定的预测,会使匹配失败。

答案 1 :(得分:2)

^(?(?!\bmyword\b).)*$

你可以试试这个。参见demo。也可以使用\b来完全匹配myword而不是mywords

https://regex101.com/r/hI0qP0/7