如何查找本身不包含某个子字符串的字符串
How to find strings that don't contain within itself a certain substring
例如我有文本:
goodstring sometext other text perfectstring
goodstring badstring perfectstring
goodstring 14554 sometext perfectstring
我需要一个正则表达式来查找除 "goodstring" 和 "perfectstring" 之间包含 badstring 的所有行之外的所有行。
所以我需要这样的东西:
goodstring\s(^badstring)\sperfectstring
用什么替换^badstring?
您可以使用负先行模式:
goodstring\s(?:(?!badstring).)*\sperfectstring
(?!badstring)
是否定的先行断言,这意味着我们在下一个位置 badstring
没有
(?:(?!badstring).)*
将再匹配 0 个在下一个位置没有 badstring
的字符。
例如我有文本:
goodstring sometext other text perfectstring
goodstring badstring perfectstring
goodstring 14554 sometext perfectstring
我需要一个正则表达式来查找除 "goodstring" 和 "perfectstring" 之间包含 badstring 的所有行之外的所有行。 所以我需要这样的东西:
goodstring\s(^badstring)\sperfectstring
用什么替换^badstring?
您可以使用负先行模式:
goodstring\s(?:(?!badstring).)*\sperfectstring
(?!badstring)
是否定的先行断言,这意味着我们在下一个位置badstring
没有(?:(?!badstring).)*
将再匹配 0 个在下一个位置没有badstring
的字符。