2 回答

TA貢獻1829條經(jīng)驗 獲得超4個贊
(?<=<item>).*?(?=</item>)
這里使用寬度斷言和勉強模式重復。
(?<=<item>)表示匹配內(nèi)容的左邊滿足表達式<item>,
(?=</item>)表示匹配內(nèi)容的右邊滿足表達式<\item>,
.*? 表示是勉強模式匹配(即匹配最少的內(nèi)容),之所以使用勉強模式匹配是因為,如果使用貪婪模式則會出現(xiàn)和您的表達式出現(xiàn)的同樣問題。但這個表達式也存在有bug,即如果出現(xiàn)如下的:
<?xml version="1.0" encoding="UTF-8"?>
<rss>
<channel>
<title>TITLE</title>
<link>LINK</link>
<item><title>T1</title><link>L1</item></link><description>D1</description></item>
<item><title>T2</title><link>L2</link><description>D2</description></item>
</channel>
</rss>
則匹配就不準確了,不過考慮到xml文檔格式的嚴謹,應(yīng)不會有這種情況出現(xiàn),故就不對表達式再進行優(yōu)化了。
是可以將匹配的結(jié)果讀取到數(shù)組中去的,不知您使用的何種語言,故無法給出代碼。
- 2 回答
- 0 關(guān)注
- 724 瀏覽
添加回答
舉報