正則表達(dá)式問號的四種用法詳解
原文符號
因?yàn)?#63;在正則表達(dá)式中有特殊的含義,所以如果想匹配?本身,則需要轉(zhuǎn)義,\?
有無量詞
問號可以表示重復(fù)前面內(nèi)容的0次或一次,也就是要么不出現(xiàn),要么出現(xiàn)一次。
非貪婪匹配
貪婪匹配
在滿足匹配時,匹配盡可能長的字符串,默認(rèn)情況下,采用貪婪匹配
string pattern1 = @"a.*c"; // greedy match
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abcabc"
非貪婪匹配
在滿足匹配時,匹配盡可能短的字符串,使用?來表示非貪婪匹配
string pattern1 = @"a.*?c"; // non-greedy match
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abc"
幾個常用的非貪婪匹配Pattern
*? 重復(fù)任意次,但盡可能少重復(fù)
+? 重復(fù)1次或更多次,但盡可能少重復(fù)
?? 重復(fù)0次或1次,但盡可能少重復(fù)
{n,m}? 重復(fù)n到m次,但盡可能少重復(fù)
{n,}? 重復(fù)n次以上,但盡可能少重復(fù)
不捕捉模式
如何關(guān)閉圓括號的捕獲能力?而只是用它來做分組,方法是在左括號的后邊加上:?,這里第一個圓括弧只是用來分組,而不會占用捕獲變量,所以$1的內(nèi)容只能是steak或者burger,而永遠(yuǎn)不可能是bronto。
while(<>){
if(/(?:bronto)(steak|burger)/){
print "Fred wants a $1\n" ;
}
}
相關(guān)文章
python 正則表達(dá)式學(xué)習(xí)小結(jié)
這篇文章主要介紹了python 正則表達(dá)式學(xué)習(xí)小結(jié)的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06
13道關(guān)于JavaScript正則表達(dá)式的面試題
本文是小編給大家收藏整理的13道關(guān)于JavaScript正則表達(dá)式的面試題,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2018-10-10
匹配移動/聯(lián)通/電信手機(jī)號碼正則表達(dá)式小結(jié)
接下來為大家詳細(xì)介紹下匹配移動/聯(lián)通/電信手機(jī)號碼正則表達(dá)式,具體實(shí)現(xiàn)代碼如下,感興趣的朋友可以參考下哈2013-04-04
正則表達(dá)式處理圖片地址、img標(biāo)簽的方法
這篇文章主要介紹了正則表達(dá)式處理圖片地址、img標(biāo)簽的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-05-05
javascript 數(shù)字的正則表達(dá)式集合
這里收集的是驗(yàn)證數(shù)字的正則表達(dá)式集合,比較的全了,需要驗(yàn)證數(shù)字的朋友很值得參考下。2010-04-04

