原文符號(hào)
因?yàn)?#63;在正則表達(dá)式中有特殊的含義,所以如果想匹配?本身,則需要轉(zhuǎn)義,\&;
有無(wú)量詞
問(wèn)號(hào)可以表示重復(fù)前面內(nèi)容的0次或一次,也就是要么不出現(xiàn),要么出現(xiàn)一次。
非貪婪匹配
貪婪匹配
在滿足匹配時(shí),匹配盡可能長(zhǎng)的字符串,默認(rèn)情況下,采用貪婪匹配
string pattern1 = @"a.*c"; // greedy match
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abcabc"
非貪婪匹配
在滿足匹配時(shí),匹配盡可能短的字符串,使用?來(lái)表示非貪婪匹配
string pattern1 = @"a.*?c"; // non-greedy match
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abc"
幾個(gè)常用的非貪婪匹配Pattern
*? 重復(fù)任意次,但盡可能少重復(fù)
+? 重復(fù)1次或更多次,但盡可能少重復(fù)
?? 重復(fù)0次或1次,但盡可能少重復(fù)
{n,m}? 重復(fù)n到m次,但盡可能少重復(fù)
{n,}? 重復(fù)n次以上,但盡可能少重復(fù)
不捕捉模式
如何關(guān)閉圓括號(hào)的捕獲能力?而只是用它來(lái)做分組,方法是在左括號(hào)的后邊加上:?,這里第一個(gè)圓括弧只是用來(lái)分組,而不會(huì)占用捕獲變量,所以$1的內(nèi)容只能是steak或者burger,而永遠(yuǎn)不可能是bronto。
while(>){
if(/(?:bronto)(steak|burger)/){
print "Fred wants a $1\n" ;
}
}
您可能感興趣的文章:- C#正則表達(dá)式之Regex類用法詳解
- JS正則表達(dá)式基本用法(經(jīng)典全)
- linux grep正則表達(dá)式與grep用法詳解
- js正則表達(dá)式test()和exec()用法實(shí)例
- js正則表達(dá)式中的問(wèn)號(hào)幾種用法小結(jié)
- Python中正則表達(dá)式的用法實(shí)例匯總
- 正則表達(dá)式中的"g"是什么意思附件參數(shù)g的用法
- 正則表達(dá)式常用用法匯總