关于一个正则表达式导致栈溢出的问题。

白开水 / 2023-05-15 / 原文

这是一个匹配SQL中注释内容的正则表达式。

/*(.|\n|\r)*?*/

匹配一些特殊的SQL时,会出现栈溢出异常。

特殊SQL为:
SQL中包含/**/注释内容,且注释内容中含较多换行时,会出现栈溢出异常。

解决方法:
在处理SQL之前,先把SQL中的换行全部替换成空格,然后更新正则表达式为

/*(.)*?*/