Python正規表示式練習

2021-08-07 11:15:14 字數 2832 閱讀 5246

.表示匹配任意字元,除了換行符,當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...