gpt4 book ai didi

Java正则表达式: avoiding logical operator

转载 作者:行者123 更新时间:2023-12-02 03:37:45 27 4
gpt4 key购买 nike

以下正则表达式在应用于大型 html 页面时会创建 StackOverflowError:

<li.*?>(.|\s)*?</li>

我的假设是,这是由于逻辑“OR”运算符(|)在匹配器中创建了递归调用,并且由于需要解析的 html 页面大小较大,因此创建堆栈溢出。

有什么方法可以在不使用“OR”运算符的情况下重写此正则表达式(知道我想要捕获可能分为多行的内容,因此需要 \s)?

非常感谢,汤姆

最佳答案

以下使用DOT_ALL, (?:s)让点.还匹配换行符。

(?s)<li[^>]*>.*?</li>

但重要的是,不能回掷 <li...>发生了,因此我选择了这种变化。

关于Java正则表达式: avoiding logical operator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37231519/

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