优化的正则表达式我用这个表达式:为HTML解析
.*[hH]([1-9])\\.\\s*(.*)\\s*
用java与Matcher.find()
方法。
在长文本这个正则表达式需要大量的时间来查找结果。
如何优化正则表达式?有人可以向我推荐一些优化的正则表达式?
优化的正则表达式我用这个表达式:为HTML解析
.*[hH]([1-9])\\.\\s*(.*)\\s*
用java与Matcher.find()
方法。
在长文本这个正则表达式需要大量的时间来查找结果。
如何优化正则表达式?有人可以向我推荐一些优化的正则表达式?
您可以使用此:
[hH]([1-9])\\.\\s*+(\\S+)
其中\\S
是所有这不是一个白色字符(的\\s
否定)
Possessive quantifiers*+
用来禁止回溯。
正如Ian Roberts在他的评论中注意到的那样,领先的(.*)
在这里似乎毫无用处。
您应该在之前测试长文本试图运行正则表达式。
String longText=...
if(longText.matches(myRegex)) {
//Matcher.find
}
这样你就不会浪费你的时间。
但是,如果你真的面对longt文本,我可以建议你使用强大的html解析器Jsoup?
你能举出你想要匹配的例子吗? –
如果您使用的是Matcher.find,那么为什么您需要领先的'。*'? –
这里是一个例子:H1。 Lorem ipsum H2。 Lorem ipsum dolor sit amet Nullam non augue ornare,vehicles nulla ac,tempor mi。 Praesent在圣诞节的fringilla quis中累积了圣餐。 Suspendisse volutpat nunc id varius fringilla。 Quisque id tortor non ... – JBerta93