需求:找出包含@,但@后面不是sina的行
支持零宽匹配的写法:@(?!sina),在Regular Expressions Tester中的结果如下
可惜的是shell下的grep不支持零宽匹配,可以用下面这个变通的方法:
adam@adam-desktop:~$ echo "mail from abc@sinb.com" | egrep '.*@([^s]|s([^i]|i([^n]|n[^a])))'
mail from abc@sinb.com
后来发现在grep中使用-P后可以支持零宽匹配
adam@adam-desktop:~$ echo "mail from abc@sinb.com" | grep -P '.*@(?!sina)'
mail from abc@sinb.com

Feed订阅