正規表示式-問號的四種用法
原文符號
因為?
在正規表示式中有特殊的含義,所以如果想匹配?
本身,則需要轉義,\?
有無量詞
問號可以表示重複前面內容的0次或一次,也就是要麼不出現,要麼出現一次。
非貪婪匹配
貪婪匹配
在滿足匹配時,匹配儘可能長的字串,預設情況下,採用貪婪匹配
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" ;
}
}
相關文章
- python正規表示式問號的使用Python
- 正規表示式 【四】
- 正規表示式以及group的用法
- 手機號正規表示式
- 匹配航班號正規表示式
- 匹配車牌號正規表示式
- Python正規表示式初識(四)Python
- 匹配銀行卡號的正規表示式
- 正規表示式匹配問題
- 正規表示式環視概念與用法分析
- 正規表示式中test、exec、match的區別介紹及括號的用法
- Python正規表示式提取車牌號Python
- 匹配銀聯卡號正規表示式
- 匹配手機號碼正規表示式
- 匹配身份證號碼正規表示式
- 正規表示式匹配標點符號符號
- 中國車牌號正規表示式
- 正規表示式中括號[]字元類字元
- 正規表示式 中括號[] 字元類字元
- OC: 手機號正規表示式(新)
- 正規表示式最常用的幾種情形
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- oracle正規表示式regexp_like的用法詳解Oracle
- Web 前端開發之js正規表示式用法Web前端JS
- 65條最常用正規表示式[附WPF用法]
- 正規表示式
- 正規表示式.
- 正規表示式對qq號碼校驗
- 匹配迅雷種子連結的正規表示式
- shell程式設計(四)| grep正規表示式程式設計
- shell程式設計(四)| sed 正規表示式程式設計
- java正規表示式四種常用的處理方式(匹配、分割、替代、獲取)Java
- Linux 的正規表示式Linux
- 理解正規表示式中的括號 (),方括號 [] 和大括號 {}
- JS常用正規表示式及驗證時間的正規表示式JS
- 金額正規表示式(相容負號、逗號、小數)
- 校驗帶有區號的座機號碼正規表示式
- 匹配國內座機號碼正規表示式