正则表达式 - 找到特定的字符串但不存在于某个句子中

时间:2012-03-08 01:33:23

标签: regex

我不确定是否可以使用一个正则表达式行。我想找到具有特定字符串的句子,但是当它出现在特定句子中时却没有。

这就像grep'word'文件 | grep -iv“特别句子”

例如: 输入:

  

Hello world foo here

     

foobar在那里

     

foo with bar

     

吧foo吧

结果应该是找到'foo'这个词而不是当句子是'带foo的bar'时: 输出:

  

Hello world foo here

     

foobar在那里

     

foo with bar

这是否可以使用一行正则表达式模式?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

^(?!bar with foo now).*?foo.*$

其中说“匹配一条不是”的栏与foo现在“,但在其中有”foo“。

但是,每行只能获得一个匹配。所以如果你有:

  

你好我的foo是foo。

这将匹配,但整个行只有一次(而不是两次,每次foo一次)。