您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

正则表达式变得疯狂:java.util.regex.Pattern匹配器进入了高CPU循环

正则表达式变得疯狂:java.util.regex.Pattern匹配器进入了高CPU循环

注意pobrelkey和David Wallace的答案都是正确的,但是这里有更多解释…

该正则表达式之所以“疯狂”(标题为BTW)是因为它受到灾难性的回溯。它具有经典的/^(A*)*$/形式。请注意,仅当模式与目标字符串不匹配时,才会发生这种失控行为。

考虑到失控模式: ^(A*|B*|C*|D*)*$有几种解决方法

后两个的性能比第一个要快很多,但是所有三个都将解决“ regex wilded”问题。(是的,最好不要使用正则表达式解析HTML。)

java 2022/1/1 18:29:36 有343人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶