場景說明:html
在多行文本中,排除包含特定字符串的行。"grep -v"可以很好的解決,而且kmp算法正則表達式
也可以解決這個問題。可是若是規定使用正則表達式,是否能夠完成這個任務。在探索的過程當中,算法
也瞭解grep一些不支持的語法。ide
- grep 之下不支持 ? 與 + 這兩種 modifier, 但 egrep 則可.工具
- grep 不支持 a|b 或 (abc|xyz) 這類"或一"比對, 但 egrep 則可.測試
- grep 在處理 {n,m} 時, 需用 { 與 } 處理, 但 egrep 則不需.spa
參考文獻:htm
http://www.cnblogs.com/wangqiguo/archive/2012/05/08/2486548.htmlblog
解決方案:字符串
例如,須要排除包含abc子串的行,能夠這樣子寫:^(?!.*abc).*$
在正則表達式工具Regexbuddy中測試經過,可是在grep和egrep皆沒法實現該功能,若是不使用-v
參數