優化的正則表達式我用這個表達式:爲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