Java正则表达式进入无限循环

Java正则表达式进入无限循环,java,regex,Java,Regex,我有一个段落,我正在尝试应用正则表达式。不幸的是,它进入了一个无限循环。你能告诉我这个正则表达式有什么问题吗 正则表达式 (([A-Z]\w*[\s\.\u0026]*){1,}\s(\d{4})|(\d{4})\s([A-Z]\w*[\s\.\u0026]*){1,})\s(\(\d+\))\s(\d+) 第段 鉴于科学家C Gr.IV(2)L.S.Meena博士因以下原因被定罪: 根据第815.04(4)(A)条提出的刑事指控 他在博伊斯卡特奖学金下在美国逗留期间的知识产权 并被判入狱24

我有一个段落,我正在尝试应用正则表达式。不幸的是,它进入了一个无限循环。你能告诉我这个正则表达式有什么问题吗

正则表达式

(([A-Z]\w*[\s\.\u0026]*){1,}\s(\d{4})|(\d{4})\s([A-Z]\w*[\s\.\u0026]*){1,})\s(\(\d+\))\s(\d+)
第段

鉴于科学家C Gr.IV(2)L.S.Meena博士因以下原因被定罪: 根据第815.04(4)(A)条提出的刑事指控 他在博伊斯卡特奖学金下在美国逗留期间的知识产权 并被判入狱24天 3月22日w.e.f.服刑24天的县监狱, 2005年由第九司法巡回法院巡回法庭在 美国佛罗里达州奥兰治县

还有,你能告诉我有没有什么工具可以告诉我正则表达式中是否有漏洞

谢谢,
Harsha

看起来像一个“病理性”正则表达式,也就是说,由于重复,它遭受灾难性的回溯,例如
([a-Z]\w*[\s\.\u0026]*){1,}


这里解释了灾难性的回溯:

这个正则表达式应该做什么?问题可能是由正则表达式引起的,比如
{1,}
一次或多次,您最好使用x+,x+?或x++。有关java中量词的信息,请参阅。@SeanKenny,这没什么帮助,因为这些都是同义词。@MarkoTopolnik同意,但它们以微妙的不同方式做同样的事情。Rubular怀疑这个正则表达式将永远无法解析。这类正则表达式使Rubular感到悲伤。