今天易有笔记(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命令支持更多的正则表达式指令。