Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 对java样式的注释使用正则表达式时堆栈溢出_Regex_Performance_Stack Overflow - Fatal编程技术网

Regex 对java样式的注释使用正则表达式时堆栈溢出

Regex 对java样式的注释使用正则表达式时堆栈溢出,regex,performance,stack-overflow,Regex,Performance,Stack Overflow,我目前正在用Scala编写一个解析器,我希望将我的空格定义为与空格和java样式的/**/注释匹配。我不需要那个角色 目前我使用的定义是: """((\s+)|(?:/\*(?:[^*]|(?:\*+[^*/]))*\*+/))*""".r 我在本页上找到了这一定义的大部分: 问题是,当匹配输入时,我得到了堆栈溢出。但是,将堆栈大小调整到1MB可以解决这个问题。不幸的是,这在我的生产系统中是不可能的。 所以我想问的是,是否有人能帮我改进正则表达式 非常感谢您的帮助,因为我只是Regex领域的

我目前正在用Scala编写一个解析器,我希望将我的空格定义为与空格和java样式的/**/注释匹配。我不需要那个角色

目前我使用的定义是:

"""((\s+)|(?:/\*(?:[^*]|(?:\*+[^*/]))*\*+/))*""".r
我在本页上找到了这一定义的大部分:

问题是,当匹配输入时,我得到了堆栈溢出。但是,将堆栈大小调整到1MB可以解决这个问题。不幸的是,这在我的生产系统中是不可能的。 所以我想问的是,是否有人能帮我改进正则表达式

非常感谢您的帮助,因为我只是Regex领域的新手:

提前谢谢

向Stefan致意。

使用普通*特殊普通**模式进行评论。您将需要多行匹配

这里,special后面不跟a/而normal后面不跟*。不带引号的正则表达式是

特别是\*?!/; 正常值为[^*]。 我不知道scala,但您需要定义一个特殊变量,一个普通变量,使用:

/\****\*/

这将吞噬您的空白,而不必担心堆栈溢出