[正則表示式 正規表示式 (Regular expression)] 量符(Quantifier):貪心量符、惰性量符的介紹
YehYeh\'s Notepad yehyeh@gmail.com 

正則表示式(Regular Expressions)

量符(Quantifier)

  • 量符用來指定一組子樣式可以連續匹配幾次,又分為:
    • 貪心量符:在指定的匹配次數中,以連續匹配最多次為優先
    • 惰性量符:在指定的匹配次數中,以連續匹配最少次為優先
  • 量符只作用於量符左邊的1個字符,或左邊的子運算式
貪 心 量 符(Greedy Quantifier)
匹配符號 說明 範例樣式 範例匹配
{n} 連續出現n次 b{2} 匹配數量:2
ababbbb
{n,} 連續出現n次或以上
優先匹配出現最多次的字串
b{2,} 匹配數量:2
ababbbbb
{n,m} 連續出現n~m次
優先匹配出現最多次的字串
b{1,2} 匹配數量:3
bbbb
* 不限次數
優先匹配出現最多次的字串
相當於:{0,}
ab* 匹配數量:3
ababbabbb
+ 重複一次以上
優先匹配出現最多次的字串
相當於:{1,}
abb+ 匹配數量:2
ababbabbb
? 不出現或出現一次
優先匹配出現1次的字串相當於:{0,1}
ab? 匹配數量:3
ababbb
惰 性 量 符(Lazy Quantifier)
匹配符號 說明 範例樣式 範例匹配
*? 不限次數
優先匹配出現最少次的字串
ab*? 匹配數量:2
ababbb
+? 重複一次以上
優先匹配出現最少次的字串
abb+ 匹配數量:2
abbabb
?? 不出現或出現一次
優先匹配出現0次的字串
ab? 匹配數量:2
ababbb
{n}? 連續出現n次
相當於:{n}
b{2}? 匹配數量:2
aabbbb
{n,}? 連續出現n次或以上
優先匹配出現最少次的字串
b{2,}? 匹配數量:2
aabbbb
{n,m}? 連續出現n~m次
優先匹配出現最少次的字串
b{2,3} 匹配數量:2
aabbbb
  • [a-zA-Z]\d{9} \(\d\d\)\d{3,4}-\d{4} \w+@\w+\.(\w\.?)* \d{4}/\d{1,2}/\d{1,2}
    簡單匹配身份証字號 簡單匹配電話號碼 簡單匹配E-Mail 簡單匹配西元日期
    量符匹配範例1 量符匹配範例2 量符匹配範例3 量符匹配範例4