.表示匹配任意字元,除了換行符,當re.dotall標記被指定時,則可以匹配包括換行符的任意字元。
import re
a = 'xy123'
b = re.findall('x...',a)
c = re.findall('x..',a)
print(b)
print(c)
輸出結果:
['xy12']
['xy1']
*的使用舉例 匹配前乙個字元0次或無限次
import re
a = 'xyxy123xx456***789'
b = re.findall('x*',a)
print(b)
實驗結果:
['x', '', 'x', '', '', '', '', 'xx', '', '', '', '***', '', '', '', '']
+匹配前乙個元字元1到多次
import re
a = 'xyxy123xx456***789'
b = re.findall('x+',a)
print(b)
實驗結果:
['x', 'x', 'xx', '***']
?匹配前乙個元字元0到1次
import re
a = 'xyxy123xx456***789'
b = re.findall('x?',a)
print(b)
實驗結果:
['x', '', 'x', '', '', '', '', 'x', 'x', '', '', '', 'x', 'x', 'x', '', '', '', '']
匹配前乙個元字元m到n次
import re
a = 'xyxy123xx456***789'
b = re.findall('x',a)
print(b)
實驗結果:
['x', 'x', 'xx', 'xx', 'x']
\轉義字元,跟在其後的字元將失去作為特殊元字元的含義,例如\.只能匹配.,不能再匹配任意字元
import re
a = 'x*yxy123xx456***789'
b = re.findall('x\*',a)
print(b)
實驗結果:
['x*']
字符集,乙個字元的集合,可匹配其中任意乙個字元
import re
a = 'x*yxay123xx456***789'
b = re.findall('x[*a]y',a)
print(b)
實驗結果:
['x*y', 'xay']
re.s使 . 匹配包括換行在內的所有字元
如果沒有re.s會出現什麼情況?
import re
a = """qqqq
aaabbbb
"""b = re.findall('(.*?)',a)
print(b)
實驗結果:
新增re.s則會出現什麼結果?
import re
a = """qqqq
aaabbbb
"""b = re.findall('(.*?)',a,re.s)
print(b)
實驗結果:
['\nqqqq\naaa
\nbbbb
\n']
re.i使匹配對大小寫不敏感
import re
a = 'x*yxay123xx456***789'
b = re.findall('x[*a]y',a,re.i)
print(b)
實驗結果:
['x*y', 'xay']
re.m多行匹配,影響 ^ 和 $
import re
text="""
aa start hi python2.6 is out
bb"""
reg='([\w\w]*?)
'p = re.compile(reg)
m=p.search(text,re.m)
if m:
print("\n matched")
print(m.group())
實驗結果:
matched
bbdiv>
如果沒有re.m
import re
text="""
aa start hi python2.6 is out
bb"""
reg='([\w\w]*?)
'p = re.compile(reg)
m=p.search(text)
if m:
print("\n matched")
print(m.group())
實驗結果:
matched
aa div>
正規表示式練習
取出其中的參考文獻,注意到每行只有乙個參考文獻,所以直接用 re.search regex,line import re with open test2 r as f lines f.readlines regex re.compile r a z reg open refer.txt w for ...
正規表示式練習
1 匹配一段文字中的每行的郵箱 y 123 qq.comaaa 163.combbb 126.comasdfasfs33333 adfcom import reret re.findall w qq 163 126 com y print ret 123 qq.com aaa 163.com bbb...
正規表示式練習
字元描述 匹配前面的子表示式零次或多次。例如,zo 能匹配 z 以及 zoo 等價於。匹配前面的子表示式一次或多次。例如,zo 能匹配 zo 以及 zoo 但不能匹配 z 等價於 匹配前面的子表示式零次或一次。例如,do es 可以匹配 do does 中的 does doxy 中的 do 1 va...