1. 程式人生 > >python中常用的正則表示式符號

python中常用的正則表示式符號

'.'     預設匹配除\n之外的任意一個字元,若指定flag DOTALL,則匹配任意字元,包括換行
'^'     匹配字元開頭,若指定flags MULTILINE,這種也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
'$'     匹配字元結尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以
'*'     匹配*號前的字元0次或多次,re.findall("ab*","cabb3abcbbac")  結果為['abb', 'ab', 'a']
'+'     匹配前一個字元1次或多次,re.findall("
ab+","ab+cd+abb+bba") 結果['ab', 'abb'] '?' 匹配前一個字元1次或0次 '{m}' 匹配前一個字元m次 '{n,m}' 匹配前一個字元n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 結果'abb', 'ab', 'abb'] '|' 匹配|左或|右的字元,re.search("abc|ABC","ABCBabcCD").group() 結果'ABC' '(...)' 分組匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 結果 abcabca456c
'\A' 只從字元開頭匹配,re.search("\Aabc","alexabc") 是匹配不到的 '\Z' 匹配字元結尾,同$ '\d' 匹配數字0-9 '\D' 匹配非數字 '\w' 匹配[A-Za-z0-9] '\W' 匹配非[A-Za-z0-9] 's' 匹配空白字元、\t、\n、\r , re.search("\s+","ab\tc1\n3").group() 結果 '\t' '(?P<name>...)' 分組匹配 re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})
","371481199306143242").groupdict("city") 結果{'province': '3714', 'city': '81', 'birthday': '1993'}

 

最常用的匹配語法:

1 re.match 從頭開始匹配
2 re.search 匹配包含
3 re.findall 把所有匹配到的字元放到以列表中的元素返回
4 re.splitall 以匹配到的字元當做列表分隔符
5 re.sub      匹配字元並替換