正規表示式練習

2021-10-06 03:41:07 字數 2236 閱讀 4745

# input('輸入qq號碼:')

# if len(qq)>=5 and qq[0]!='0':

# print('合法的')

# else:

# print('不合法的')

import re

msg=

'娜扎熱巴戴斯佟麗婭'

pattern=re.

compile

('娜扎'

)result=pattern.match(msg)

#沒有匹配返回none

print

(result)

#使用正則re模組方法: match

s='娜扎熱巴戴斯佟麗婭'

result=re.match(

'娜扎'

,s)#只能從開頭進行匹配,如果匹配不成功則就返回none

print

(result)

result=re.search(

'佟麗婭'

,s)#進行正則字串匹配方法, 匹配的是整個字串

print

(result)

print

(result.span())

print

(result.group())

#使用group提取到匹配的內容部分

print

(result.groups())

#a2b h6k

# s='哈哈1a'

# result=re.search('[0-9][a-z]',s)

# print(result)

msg=

'abcd7bikfd8hdf00'

result=re.search(

'[a-z][0-9][a-z]'

,msg)

#只要有匹配的後面就不檢索了

print

(result.group())

result=re.findall(

'[a-z][0-9][a-z]'

,msg)

#findall匹配整個字串

print

(result)

#正則的符號

#a7a a88a a7878a

msg=

'a7aopa88a898jkla77878a'

result=re.findall(

'[a-z][0-9]+[a-z]'

,msg)

print

(result)

#驗證qq驗證5-11位,開頭不能是0

qq='4596749894'

result=re.match(

'^[1-9][0-9]$'

,qq)

print

(result)

#使用者名稱可以是字母或者數字,不能是數字開頭,使用者名稱長度必須是六位以上[0-9a-za-z]

username=

'admain001'

result=re.search(

'[a-za-z][0-9a-za-z]'

,username)

print

(result)

msg=

'aa.py ab.txt bb.py kk.png uu.py apyb.txt'

result=re.findall(r'\w*\.py\b'

,msg)

print

(result)

執行結果:

; span=(0

,2), match=

'娜扎'

>

; span=(0

,2), match=

'娜扎'

>

; span=(6

,9), match=

'佟麗婭'

>(6

,9)佟麗婭()

d7b[

'd7b'

,'d8h'][

'a7a'

,'a88a'

,'a77878a'

]; span=(0

,10), match=

'4596749894'

>

; span=(0

,9), match=

'admain001'

>

['aa.py'

,'bb.py'

,'uu.py'

]

正規表示式練習

取出其中的參考文獻,注意到每行只有乙個參考文獻,所以直接用 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...