如何查找不包含某个子字符串的字符串

时间:2016-08-03 22:42:10

标签: regex regex-lookarounds

例如我有文字:

goodstring sometext other text perfectstring 
goodstring badstring perfectstring 
goodstring 14554 sometext perfectstring

我需要一个正则表达式来查找除#34; goodstring"之间的 badstring 之外的所有行。和#34; perfectstring"。 所以我需要这样的东西:

goodstring\s(^badstring)\sperfectstring

替换 ^ badstring 的权利是什么?

1 个答案:

答案 0 :(得分:2)

您可以使用负前瞻模式:

goodstring\s(?:(?!badstring).)*\sperfectstring

RegEx Demo

  • (?!badstring)是负面的先行断言,意味着我们在下一个位置没有badstring
  • (?:(?!badstring).)*将匹配另外0个在下一个位置没有badstring的角色。