正則表達式中的 .*? 或 .*+ 是什麼意思?

最近要做一個提取文字特殊內容的工具,老是不會寫正則表達,經常遇到.*? 或 .*+ 這些符號,網上查查,終於知道什麼意思了,記錄一下網上解釋結果:

後邊多一個?表示懶惰模式。
必須跟在*或者+後邊用
如:<img src="test.jpg" width="60px" height="80px"/>
如果用正則匹配src中內容非懶惰模式匹配
src=".*"
匹配結果是:src="test.jpg" width="60px" height="80px"
意思是從="往後匹配,直到最後一個"匹配結束

懶惰模式正則:
src=".*?"
結果:src="test.jpg"
因爲匹配到第一個"就結束了一次匹配。不會繼續向後匹配。因爲他懶惰嘛。

.表示除\n之外的任意字符
*表示匹配0-無窮
+表示匹配1-無窮

去掉括號實例

<span style="font-size:14px;">public class Test {
  public static void main(String[] args) {
	String s = "圖片(img=32,34)http://www.sds.com/jpg(/img)圖片(img=32,34)http://www.sds.com/jpg(/img)"; 
	System.out.println(s.replaceAll("\\[.+?\\]",""));
  }
}</span>



結果:

圖片http://www.sds.com/jpg圖片http://www.sds.com/jpg


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