场景说明:

在多行文本中,排除包含特定字符串的行。"grep -v"能够很好的解决,并且kmp算法

也能够解决这个问题。但是如果规定使用正则表达式,是否可以完成这个任务。在探索的过程中,

也了解grep一些不支持的语法。

- grep 之下不支持 ? 与 + 这两种 modifier, 但 egrep 则可.

- grep 不支持 a|b 或 (abc|xyz) 这类"或一"比对, 但 egrep 则可.

- grep 在处理 {n,m} 时, 需用 { 与 } 处理, 但 egrep 则不需.


参考文献:

http://www.cnblogs.com/wangqiguo/archive/2012/05/08/2486548.html


解决方案:

例如,需要排除包含abc子串的行,可以这样子写:^(?!.*abc).*$


在正则表达式工具Regexbuddy中测试通过,但是在grep和egrep皆无法实现该功能,如果不使用-v

参数