当前位置: 技术问答>linux和unix
grep正则匹配的问题
来源: 互联网 发布时间:2017-05-18
本文导语: 利用grep正则表达式做匹配,示例如下: linux:~ # echo 'tmp 123' | grep 'tmps*d*' tmp 123 linux:~ # echo 'tmp 123' | grep 'tmps*d+' linux:~ # 后面d*可以匹配出来,但是d+不行。 正则肯定是没问题的啊,但是grep使用为什么不...
利用grep正则表达式做匹配,示例如下:
linux:~ # echo 'tmp 123' | grep 'tmps*d*'
tmp 123
linux:~ # echo 'tmp 123' | grep 'tmps*d+'
linux:~ #
后面d*可以匹配出来,但是d+不行。 正则肯定是没问题的啊,但是grep使用为什么不行?
linux:~ # echo 'tmp 123' | grep 'tmps*d*'
tmp 123
linux:~ # echo 'tmp 123' | grep 'tmps*d+'
linux:~ #
后面d*可以匹配出来,但是d+不行。 正则肯定是没问题的啊,但是grep使用为什么不行?
|
楼上两位猜的不是很对
+这种写法在grep命令的基础正则里面不支持,可以开启它的Perl正则:
+这种写法在grep命令的基础正则里面不支持,可以开启它的Perl正则:
echo 'tmp 123' | grep -P 'tmps*d+'
|
+表示前面的字符至少要有一个,最好是明确的字符。
grep 换成egrep,egrep支持更多的正则表达式
grep 换成egrep,egrep支持更多的正则表达式
|
这个不行,可能是不同正则库的实现不同把,还是有细微差别的,别较真了