Java:正则表达式导致堆栈溢出

时间:2016-03-31 08:25:49

标签: java regex stack-overflow

我有java代码,我想解析C文件并查找所有注释。

为了查找以/*开头且以*/结尾的行或行的所有注释,我使用此正则表达式:Pattern.compile("/\\*(?:.|[\\n\\r]|[\\n])*?\\*/")

问题是某些输入导致堆栈溢出。

我读到了这个问题并理解我将避免在正则表达式中使用|。我是正则表达世界的新手。有人可以帮我简化一下吗?

1 个答案:

答案 0 :(得分:1)

您的换行处理不正确。

尝试使用它:

Pattern.compile("/\\*.*?\\*/", Pattern.MULTILINE|Pattern.DOTALL);

这样,您的.字符也可以匹配换行符。