我需要使用AND在同一行上排除两个字符串。但我无法应用正确的正则表达式。请帮忙。
以下示例,我想排除' badword'和'测试'都。 测试字符串:
ghjghj badword test ghjghj
one two
abadwords
three
使用的正则表达式为^((?!badword).*.((?!test).))*$
答案 0 :(得分:0)
要匹配不包含多个完整单词的行,您可以使用在开始时锚定的negative lookahead内的替换或使用多个负向前瞻,每个前瞻包含一个完整的单词匹配模式:
^(?!.*\b(?:badword|test)\b).*$
或者
^(?!.*\bbadword\b)(?!.*\btest\b).*$
请参阅regex demo。您可能需要使用多线修改器使^
和$
匹配行的开头/结尾。
<强>详情
^
- 字符串/行(?!.*\b(?:badword|test)\b)
- 如果在当前位置的右侧,除了换行符之后有0个字符,后跟字边界badword
或{ {1}}子字符串,然后是单词边界test
- 然后除了换行符之外还有0个以上的字符.*
- 字符串/行的结尾。答案 1 :(得分:-1)
这似乎可以解决问题:
^(?!.*\bbadword\b)(?!.*\btest\b).*$