2011-04-05 337 views
4

比赛线路比方说,我有一个正则表达式foobar的,我想找到不包含匹配foobar的文档中的所有行。我可以这样做吗?我该怎么做呢?正则表达式:不匹配的子正则表达式

+0

有些人可能会建议你在没有匹配的情况下打印出来,但我认为你的问题是,当没有这样的词时,什么是“匹配”的正则表达式 – 2011-04-05 17:17:08

+0

正确! - 我不知道你可以在用户名中使用汉字!凉。 – JnBrymn 2011-04-05 17:20:27

回答

11
^(?!.*foobar.*).+$ 

使用多行选项,匹配所有不包含foobar的行..

+0

这看起来对我来说...但它不工作,如果我在这里尝试它:http://gskinner.com/RegExr/ – JnBrymn 2011-04-05 21:52:24

+0

这是无稽之谈,但是当我检查扩展复选框,它已经工作..尝试与RAD正则表达式设计器 – 2011-04-05 23:08:55

+0

非常感谢你! – JnBrymn 2011-04-07 04:12:23

0

您的情况下,正则表达式 可这

^((?!foobar))$ 

编辑:

,但如果你只是想grep的东西,你可以用-v参数:

grep -v foobar 
+0

匹配任何不以foobar开头的行。我需要匹配任何不包含* foobar的行。 – JnBrymn 2011-04-05 17:21:17

+0

你需要这个grep工具吗? – smas 2011-04-05 17:25:30

+0

您至少可以留下一条提示,即您已更改答案,因为现在某些评论可能无关紧要。 – 2011-04-05 17:40:49