匹配數量範例

  1. 範例:使用 findall 函式找正規表示式指定的匹配次數的所有字串並存成 list 回傳。
    [dywang@deyu zzz]$ cat re4.py 
    #!/usr/bin/python3
    # coding: utf-8
    import re, sys
    
    str = sys.argv[1]
    mo1 = re.findall( r'wo*d', str, re.I)
    mo2 = re.findall( r'wo+d', str, re.I)
    mo3 = re.findall( r'wo?d', str, re.I)
    mo4 = re.findall( r'wo{3}d', str, re.I)
    mo5 = re.findall( r'wo{2,}d', str, re.I)
    mo6 = re.findall( r'wo{1,3}d', str, re.I)
    if mo1: print('1. wo*d :', mo1)
    if mo2: print('2. wo+d :', mo2)
    if mo3: print('3. wo?d :', mo3)
    if mo4: print('4. wo{3}d :', mo4)
    if mo5: print('5. wo{2,}d :', mo5)
    if mo6: print('6. wo{1,3}d :', mo6)
    
  2. 執行結果:findall 找到指定 o 匹配次數的字串。
    [dywang@deyu zzz]$ ./re4.py "wd wod wood woood xyz wooood woooood" 
    1. wo*d : ['wd', 'wod', 'wood', 'woood', 'wooood', 'woooood']
    2. wo+d : ['wod', 'wood', 'woood', 'wooood', 'woooood']
    3. wo?d : ['wd', 'wod']
    4. wo{3}d : ['woood']
    5. wo{2,}d : ['wood', 'woood', 'wooood', 'woooood']
    6. wo{1,3}d : ['wod', 'wood', 'woood']