regex 正则表达式匹配字符串而不是另一个字符串[重复]

58wvjzkj  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(95)

此问题在此处已有答案

Regular expression for a string containing one word but not another(5个答案)
Regular expression to match a line that doesn't contain a word(34答案)
Is there a regex to match a string that contains A but does not contain B [duplicate](3个答案)
9天前关闭。
假设我有以下几行:

1. blah app prod blah blah
2. blah app prod blah ignore
3. blah app staging blah blah
4. blah app staging blah ignore
5. blah app prod blah blah blah ignore blah blah
6. blah blah

字符串
我想写一个正则表达式,匹配所有包含“app prod”但不包含“ignore”的行。所以我想抓住:

1. blah app prod blah blah


我怎么写这个正则表达式?
我尝试了以下方法,但它返回了第1、2、5行:

.*app prod.*((?!ignore).)*

i2byvkas

i2byvkas1#

你应该把排除ignore的负前瞻放在模式的开始:

(?!.*\bignore\b).*\bapp prod\b.*

字符串

Demo

当前模式.*app prod.*((?!ignore).)*的问题在于它只Assertignore不会出现在 * app prod之后。但是您希望此排除适用于出现在行中任何位置的ignore

相关问题