我想要一个表达式,当它遇到诸如"boon.ini"和"http"之类的单词时会失败.目标是采用这个表达式,并能够为任何一组关键字构建.
^(?:(?!boon\.ini|http).)*$\r?\n?
(取自RegexBuddy的库)将匹配任何不包含boon.ini和/或http的行.那是你想要的吗?
可以使用的替代表达式:
^(?!.*IgnoreMe).*$
^
=表示行的开始=表示行
$
的结束
(?! Expression)
=表示表达式上的零宽度向前看负匹配
该^
在前面是必要的,否则当评估的负前瞻可能从内部开始的地方/超越"IgnoreMe"文本-并进行匹配,你不希望它太.
例如,如果你使用正则表达式:
(?!.*IgnoreMe).*$
输入"Hello IgnoreMe Please"时,这将导致类似:"gnoreMe Please",因为负向前看发现在'I'之后没有完整的字符串'IgnoreMe'.
您应该在代码中执行此操作,而不是否定表达式中的结果.这样,表达式变得非常简单.
\b(boon\.ini|http)\b
true
如果boon.ini或http在您的字符串中的任何位置,则会返回.它不会匹配像httpd或httpxyzzy这样的单词,因为它\b
或单词边界.如果你愿意,你可以删除它们,它也会匹配它们.要添加更多关键字,只需添加更多管道即可.
\b(boon\.ini|http|foo|bar)\b