正则表达式(regex)在测试时正常,但在Linux中用grep命令执行时不能正常工作。如何解决?

今天易有笔记(Yiyounote.com)遇到一个有意思的问题:我写了一个正则表达式(regular expression),在Notepad++中测试时完全正常,但在Linux中用grep命令执行时不能正常工作。下面小易给大家快速分享一下具体的原因。

我们写的正则表达式是这样的:

\/\*\w{5}\*\/

它的作用是匹配代码的注释,注释中含有5个字符(包括数字和字母)。

我们在Notepad++及在线正则表达式编写工具中测试这个表达式时,显示结果是正常的。但在Linux中运行时,却匹配不到任何结果。

我们使用的命令格式为:

grep "/*w{5}*/" myfile

经过多次尝试和测试,我们发现了问题的所在。

只需在grep命令中添加一个参数选项-E,就可以正常匹配了。

修改后的命令格式为:

grep -E "/*w{5}*/" myfile

注意这里的-E,意思是扩展(extended),它可以使grep命令支持更多的正则表达式指令。

Leave a Reply