这行正则表达式发生了什么?

在看《鸟哥的linux私房菜》,关于正则表达式这一章节。我测试了一行语句,本意是找到文件中的 ‘ (单引号),但是实际上匹配了整个文件内容,发生了什么?为什么?

发在这里不知道是否合适,如不合适,我可以删除掉。

我自己试了一下,以下几个命令应该是你想要的效果:

grep -n \'
grep -n "'"
grep -n [\']
grep -nP "\'" 

似乎"\'"match的是空字符串,换成""或者''结果和你的一样,但是我在manual里面没找到相关说明。

1 个赞

是不是这个啊?

‘\'’ matches the end of the whole input

3 个赞

没事加 \ 干啥? 直接 ' 不好吗?

Emacs 中 \' 似乎也是这么用的

1 个赞

谢谢,看来我要先学会去查手册 :v:

谢谢,按照鸟哥的答案,正常情况下我确实匹配到了。在尝试其他方式时,无意中碰见了上面那种情况,发到这里求教一下。

多谢多谢,我了解了。

正则表达式这块,我觉着《精通正则表达式》不错

1 个赞