最近要做一個提取文字特殊內容的工具,老是不會寫正則表達,經常遇到.*? 或 .*+ 這些符號,網上查查,終於知道什麼意思了,記錄一下網上解釋結果:
後邊多一個?表示懶惰模式。 必須跟在*或者+後邊用 如:<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