1. 程式人生 > >python內置模塊--re正則

python內置模塊--re正則

貪婪 aaa abcd col 方式 技術 ads log any

正則是用一些特殊含義的符號組合到一起來描述字符或者字符串的方法。python中內置了re模塊。

技術分享

import re
stra=‘‘‘
a1b2c3c4d5e6f./<>+_-{}[]123456
abcdefg
[email protected]#$%^&*()
‘‘‘

#大小w的區別,大寫W匹配出字符串以外所有值
a=re.findall("\W",stra)
print(a)
#小寫w匹配所有字符串,非符號
b=re.findall("\w",stra)
print(b)

#\s與\S區別
print(re.findall(\s,stra)#匹配出所有字符
print(re.findall(\S,stra) #匹配除字符以外的其他元素 #\n \t都是空,都可以被\s匹配 print(re.findall(\s,stra) #\n與\t print(re.findall(r\n,stra) print(re.findall(r\t,stra) #\d與\D print(re.findall(\d,stra) #匹配所有數字 print(re.findall(\D,stra) #不匹配任何數字 #\A與\Z a=re.findall("\As","stra")#匹配字符串開始字符 b=re.findall("
a\Z","stra")#匹配字符串末尾字符 #匹配大小寫字母的方式 print(re.findall([A-Z],stra) #匹配出所有大寫字母 print(re.findall([a-z],stra)#匹配出所有小寫字母 #元字符的匹配使用 [],範圍匹配,只能匹配單字符,且會匹配【】內所有的指定字符
.,只匹配一位字符,有且只有一個,可代表任意字符
?,匹配一位字符,可有可無
*,匹配任意字符,可有可無且不僅僅匹配一位
^,匹配行首,如果在[^]則表示為非
()分組匹配,匹配()內的字符,以組為單位

+,匹配一個或多個,有且必須有一位
|,範圍匹配時的或操作, print
(re.findall(compan(?:y|ies),Too many companies have gone bankrupt, and the next one is my company)) 結果([companies, company])

貪婪匹配與非貪婪匹配

findall

:默認為貪婪匹配,就是會匹配字符中所有符合正則條件的結果

當在正則使用?時:例如

:re.findall(a.*?b,aqddddddddda1b) 結果為:aqb

re模塊下的方法:

re.findall("正則",‘itemseq’)#返回的匹配結果放在列表中,

re.search("正則",‘itemseq’)#找到第一個匹配結果就返回,返回的匹配信息是一個對象,調用group方法得到匹配的字符串。

b=re.search("12345",stra)
print(b.group())



re.split(‘[ab]‘,‘abcd‘) #按照a分割得到‘’和bcd,在對b進行分割

re.sub(‘a‘,‘B‘,‘aaabcd‘)#替換匹配到的字符
re.subn(a‘,A‘,aaafff‘)#會匹配所有符合的值,並會攜帶匹配個數返回


一些簡單的正則聯系題

import re

#匹配出df,並給出匹配了多少個
a=re.findall(af,"asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd")
print(a,len(a))

a=re.findall(‘\d‘,"aslkdjwjkdj123dife94rew")












python內置模塊--re正則