正則表示式中的 .*? 或 .*+ 的意思
正則表示式簡介
正則表示式,又稱規則表示式。(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正則表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。
許多程式設計語言都支援利用正則表示式進行字串操作。例如,在Perl中就內建了一個功能強大的正則表示式引擎。正則表示式這個概念最初是由Unix中的工具軟體(例如sed和grep)普及開的。正則表示式通常縮寫成“regex”,單數有regexp、regex,複數有regexps、regexes、regexen。
這篇文章重點給大家介紹正則表示式中的 .*? 或 .*+ 的意思 ,具體內容如下所示:
最近要做一個提取文字特殊內容的工具,老是不會寫正則表達,經常遇到.*? 或 .*+ 這些符號,網上查查,終於知道什麼意思了,記錄一下網上解釋結果:
後邊多一個?表示懶惰模式。
必須跟在*或者+後邊用
如:<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
總結
到此這篇關於正則表示式中的 .*? 或 .*+ 的意思 的文章就介紹到這了,更多相關正則表示式中的 .*? .*+ 內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!