匯入import re
python中通過re模組來處理正規表示式。re模組的常用方法如下:
re.match(re規則,字串):從頭開始匹配。從字串的第乙個字元開始匹配,如果第乙個字元不匹配規則,那麼匹配失敗。
match(pattern, string, flags=0)
re.search(re規則,字串):匹配包含。不要求從字串的第乙個字元就匹配。只要字串當中有匹配該規則的,則就匹配成功。
search(pattern, string, flags=0)
re.findall(re規則,字串):把所有匹配的字元放在列表中並返回。
findall(pattern, string, flags=0)
re.sub(re規則,替換串,被替換字串):匹配字元並替換。
sub(pattern, repl, string, count=0, flags=0)
正則常用規則1:
'.' 匹配除「\n」之外的任何單個字元
'^' 匹配字元開頭
'$' 匹配字元結尾
'*' 匹配*前面的字元0次 或多次
'+' 匹配前乙個字元1次 或多次
'?' 匹配前乙個字元0次 或1次
'' 匹配前乙個字元m次
>>> importre>>> re.match('
.','
abdfffhhh123')
<_sre.sre_match object; span=(0, 1), match='
a'>
>>> re.match('
.','
abcfffhhh123
').group()'a
'>>> re.match('
.*','
abcfffhhh123')
<_sre.sre_match object; span=(0, 12), match='
abcfffhhh123
'>
>>> re.match('
^a.*3$
','abcfffhhh123')
<_sre.sre_match object; span=(0, 12), match='
abcfffhhh123
'>
>>> re.match('
a.*5$
','abcfffhhh123')
>>> re.search('
f*','
abcfffhhh123')
<_sre.sre_match object; span=(0, 0), match=''>
>>> re.search('
^af*
','abcfffhhh123')
<_sre.sre_match object; span=(0, 1), match='
a'>
>>> re.match('
af*','
abcfffhhh123')
<_sre.sre_match object; span=(0, 1), match='
a'>
>>> re.match('
af+','
abcfffhhh123')
>>> re.match('
.*f+
','abcfffhhh123')
<_sre.sre_match object; span=(0, 6), match='
abcfff
'>
>>> re.match('
.*f?
','abcfffhhh123')
<_sre.sre_match object; span=(0, 12), match='
abcfffhhh123
'>
>>> re.match('
af.*
','abcfffhhh123')
>>> re.match('
.*f','
abcfffhhh123')
<_sre.sre_match object; span=(0, 6), match='
abcfff
'>
>>>
正則常用規則2:
'\d' 匹配乙個數字字元
'\d' 匹配乙個非數字字元
'\w' 匹配包含下劃線的任何單詞字元。等價於」[a-z a-z 0-9 _]「
'\w' 匹配任何非單詞字元
'(pattern)' 匹配pattern並獲取這一匹配
'[a-z]' 字元範圍。匹配指定範圍內的任意字元
'[xyz]' 字元集合。匹配所包含的任意乙個字元
>>> re.search('\d','
123abc')
<_sre.sre_match object; span=(0, 1), match='
1'>
>>> re.search('
\d','
123abc
').group()
'123
'>>> re.search('
\d','
123abc
').group()'a
'>>> re.search('
\w','
123_abc@@###
').group()
'123_a
'>>> re.search('
\w','
123abc@@@###
').group()'@
'
>>> re.findall('(\d)
','12abd55ggg')
['12', '55'
]>>> re.findall('
[abc]
','12abd55ggg')
['a', 'b'
]>>> re.findall('
[0-9]
','12abd55ggg')
['1', '
2', '
5', '5'
]>>> re.findall('
[0-9][abc]
','12abd55ggg')
['2a'
]>>> re.search('
(\d).*
','abcfffhhh1235,ab478
').group()
'1235,ab478
'>>> re.search('
(\d).*
','abcfffhhh1235,ab478
').group(1)'1
'
正規表示式手冊參考:
re 正規表示式模組
import re 預定義字符集 d 數字 0 9 d 非數字 d s 空白字元 空格 t r n f v s 非空白字元 s w 單詞字元 a za z0 9 w 非單詞字元 w 匹配數量 匹配除換行符以外的任何單個字元 匹配前乙個字元0或無限次 盡可能多的匹配 盡可能少的進行匹配前邊的正規表示式...
正規表示式 re模組
re是python中的正規表示式模組,正則也是每個人程式設計之路上必備的基礎技能。這部落格希望即便從來沒接觸過的人看了也會使用正規表示式字元 含義.匹配除了換行符外的任何字元。可以用re.dotall來設定匹配任何字元,包括換行符 丨a丨b 表示正規表示式匹配a或者b 匹配輸入字串開始的位置,如果設...
正規表示式re模組
正規表示式re模組 編譯正規表示式模式,返回乙個物件的模式。可以把那些常用的正規表示式編譯成正規表示式物件,這樣可以提高一點效率。1 compile 格式 re.compile pattern,flags 0 pattern 編譯時用的表示式字串。flags 編譯標誌位,用於修改正規表示式的匹配方式...