gpt4 book ai didi

java - Java中的正则表达式性能问题

转载 作者:行者123 更新时间:2023-12-02 04:59:29 25 4
gpt4 key购买 nike

我想使用以下 Java 代码提取 HTML-body-Tags 中的所有文本:

Pattern.compile(".*<\\s*body\\s*>(.*?)<\\s*/\\s*body\\s*>.*", Pattern.DOTALL);

..

matcher.find() ? matcher.group(1) : originalText

这对于 html 来说效果很好,但对于不包含任何 html(并且没有 body 元素)的较大文本,例如较大的堆栈跟踪调用 ma​​tcher.find() 会花费大量时间。

有谁知道这是什么原因吗?以及如何使这个正则表达式更加高效?

提前致谢!

最佳答案

现在的正则表达式是:

<\\s*?body\\s*?>(.*?)<\\s*?/\\s*?body\\s*?>

表达式开头和结尾的 .* 已被删除,现在它可以正常快速地工作。此外,所有量词现在都是非贪婪的。

感谢您的有用评论!

关于java - Java中的正则表达式性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28428615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com