溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

正則表達式問號有什么用

發(fā)布時間:2021-09-28 16:50:24 來源:億速云 閱讀:254 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹正則表達式問號有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

原文符號

因為?在正則表達式中有特殊的含義,所以如果想匹配?本身,則需要轉義,\?

有無量詞

問號可以表示重復前面內容的0次或一次,也就是要么不出現(xiàn),要么出現(xià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

*? 重復任意次,但盡可能少重復
+? 重復1次或更多次,但盡可能少重復
?? 重復0次或1次,但盡可能少重復
{n,m}? 重復n到m次,但盡可能少重復
{n,}? 重復n次以上,但盡可能少重復

不捕捉模式

如何關閉圓括號的捕獲能力?而只是用它來做分組,方法是在左括號的后邊加上:?,這里第一個圓括弧只是用來分組,而不會占用捕獲變量,所以$1的內容只能是steak或者burger,而永遠不可能是bronto。

while(<>){
  if(/(?:bronto)(steak|burger)/){
    print "Fred wants a $1\n" ;
  }
}

以上是“正則表達式問號有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI