Java 正則表達式 非貪婪模式

正則表達式的非貪婪模式。

非貪婪模式在匹配的時候會儘可能少的匹配。

非貪婪模式的表示爲 在匹配次數後面加一個? 匹配次數有:* + {m,n} 

如   regex = "a*?" ".+?"


在非貪婪模式 要使匹配儘可能少,儘可能短。

正則表達式的貪婪模式則 在匹配時要儘可能的多 


如: <div><p>bdxxx</p></div> <div><p>taaaa</p></div>

貪婪模式 正則表達式 : regex="<div>.*</div>"

結果:匹配一次。獲取的爲  <div><p>bdxxx</p></div> <div><p>taaaa</p></div>

非貪婪模式 正則表達式 : regex = "<div>.*?</div>"

結果:匹配兩次。 兩次獲取的分別爲:<div><p>bdxxx</p></div>  和  <div><p>taaaa</p></div>


非貪婪模式會將匹配儘可能少,在第一次遇到</div> 就完成匹配。進行下一次匹配

而貪婪模式會將是匹配儘可能的多,在第一次遇到</div>後繼續向後匹配, 一直找到最後一個</div> 才完成匹配。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章