[dywang@deyu zzz]$ cat re1.py
#!/usr/bin/python3
import re, sys
str = sys.argv[1]
mo1 = re.match( r'^word', str, re.I)
mo2 = re.match( r'abc$', str, re.I)
mo3 = re.match( r'w.*', str, re.I)
mo4 = re.match( r'[wd]', str, re.I)
mo5 = re.match( 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())
abc$ 不匹配,4 [wd] 也只匹配 w 沒有 d?
因為 match 是從開頭找,也就是 abc$ 其實是 ^abc$
[dywang@deyu zzz]$ ./re1.py "word abc" 1. ^word : word 3. w.* : word abc 4. [wd] : w
[dywang@deyu zzz]$ ./re1.py "Word abc" 1. ^word : Word 3. w.* : Word abc 4. [wd] : W
^ 開頭,此例中 pattern r'abc$' 等效 r'^abc$'。
[dywang@deyu zzz]$ ./re1.py "abc" 2. abc$ : abc 5. [^wd] : a
[^wd] 開頭不是 w 或 d。
[dywang@deyu zzz]$ ./re1.py "abc word" 5. [^wd] : a