search 函式

  1. 範例:search 函式「從字串任意位置」找正規表示式匹配的字串,函式回傳匹配的 object,需要使用 group(n) 方法取出匹配的字串,其中括號內的 n 為匹配的第 n 分組,不指定則輸出全部分組。
    [dywang@deyu zzz]$ cat re2.py 
    #!/usr/bin/python3
    import re, sys
    
    str = sys.argv[1]
    mo1 = re.search( r'^word', str, re.I)
    mo2 = re.search( r'abc$', str, re.I)
    mo3 = re.search( r'w.*', str, re.I)
    mo4 = re.search( r'[wd]', str, re.I)
    mo5 = re.search( r'[^wd]', str, re.I)
    if mo1: print('1. ^word :', mo1.group())
    if mo2: print('2. abc$ :', mo2.group())
    if mo3: print('3. w.* :', mo3.group())
    if mo4: print('4. [wd] :', mo4.group())
    if mo5: print('5. [^wd] :', mo5.group())
    
  2. 執行結果一:1,2,3,4,5 五種表示式都找到匹配,但 4,5 為什麼只匹配 w 及 o?
    [dywang@deyu zzz]$ ./re2.py "word abc"
    1. ^word : word
    2. abc$ : abc
    3. w.* : word abc
    4. [wd] : w
    5. [^wd] : o
    
  3. 執行結果二:3,4,5 三種表示式匹配。
    [dywang@deyu zzz]$ python re2.py 'abc word'
    3. w.* : word
    4. [wd] : w
    5. [^wd] : a