小编Ach*_*les的帖子

正则表达式模式灾难性回溯

我在我的一个旧Java系统中使用了下面显示的正则表达式,最近导致了回溯问题.回溯线程经常导致机器的CPU达到上限,并且在重新启动应用程序之前它不会返回.

任何人都可以建议一种更好的方法来重写这种模式或一种可以帮助我这样做的工具吗?

图案:

^\[(([\p{N}]*\]\,\[[\p{N}]*)*|[\p{N}]*)\]$
Run Code Online (Sandbox Code Playgroud)

工作价值:

[1234567],[89023432],[124534543],[4564362],[1234543],[12234567],[124567],[1234567],[1234567]
Run Code Online (Sandbox Code Playgroud)

灾难性的回溯值 - 如果值中有任何错误(最后添加额外的括号):

[1234567],[89023432],[124534543],[4564362],[1234543],[12234567],[124567],[1234567],[1234567]]
Run Code Online (Sandbox Code Playgroud)

java regex backtracking

6
推荐指数
1
解决办法
5195
查看次数

标签 统计

backtracking ×1

java ×1

regex ×1