Grep正则表达式出错



我在grep命令中编写了以下regex,以便在包含java文件的目录中查找SQLException的所有catch语句。

catchs{0,}(s{0,}SQLException

它给出了"grep:Unmatch(or()"错误。此正则表达式在RegExr.com上运行良好。此正则函数有什么问题?

要使用s,需要指定-P选项(允许Perl正则表达式):

grep -P 'catchs{0,}(s{0,}SQLException' 

顺便说一句,您可以使用*而不是{0,}

grep默认使用BRE(成为捕获组的开始(未捕获的(是字面意义上的)。

您可以将此grep与扩展正则表达式模式-E:一起使用

grep -E 'catch[[:blank:]]*([[:blank:]]*SQLException' file.log

最新更新