2011-04-05 288 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