目錄
?
?
1、正則表達(dá)式語(yǔ)法?
2、Python正則表達(dá)式
1>一般字符
2>字符集合
?
1、正則表達(dá)式語(yǔ)法?
先看圖片,大概了解一下正則表達(dá)的整體規(guī)則
2、Python正則表達(dá)式
1>一般字符
一般字符串,就是特殊制定,根據(jù)特殊的字符串進(jìn)行識(shí)別
PS:python進(jìn)行正則表達(dá)的一般步驟
指定好匹配的模式-pattern
選擇相應(yīng)的方法-match,search等
得到匹配結(jié)果-group
設(shè)定一個(gè)輸入:input ,并導(dǎo)入需要的re包
import re
input = 'python學(xué)習(xí)很重要,正則表達(dá)也很重要 。 12abcABC789'
pattern = re.compile(r'正則表達(dá)')
re.findall(pattern,input)
out: ? ?['正則表達(dá)']
2>字符集合
- [abc] 指定包含字符
- [a-zA-Z] 來(lái)指定所以英文字母的大小寫
- [^a-zA-Z] 指定不匹配所有英文字母
pattern = re.compile(r'[abc]')
re.findall(pattern,input)
out: ?['a', 'b', 'c']
pattern = re.compile(r'[a-z]')
re.findall(pattern,input)
out: ??['p', 'y', 't', 'h', 'o', 'n', 'a', 'b', 'c']
pattern = re.compile(r'[a-zA-Z]')
re.findall(pattern,input)
out: ??['p', 'y', 't', 'h', 'o', 'n', 'a', 'b', 'c', 'A', 'B', 'C']
^非的用法
pattern = re.compile(r'[^a-zA-Z]')
re.findall(pattern,input)
out: ??['學(xué)',?'習(xí)',?'很',?'重',?'要',?',',?'正',?'則',?'表',?'達(dá)',?'也',?'很',?'重',?'要',?' ',?'。',?' ',?'1',?'2',?'7',?'8',?'9']
或方法
將兩個(gè)規(guī)則并列起來(lái),以‘ | ’連接,表示只要滿足其中之一就可以匹配。
- [a-zA-Z]|[0-9] 表示滿足數(shù)字或字母就可以匹配,這個(gè)規(guī)則等價(jià)于 [a-zA-Z0-9]
pattern = re.compile(r'[a-zA-Z]|[0-9]')
re.findall(pattern,input)
out : ??['p',?'y',?'t',?'h',?'o',?'n',?'1',?'2',?'a',?'b',?'c',?'A',?'B',?'C',?'7',?'8',?'9']
匹配數(shù)字 ‘\d’ 等價(jià)于 [0-9]
pattern = re.compile(r'\d')
re.findall(pattern,input)
out: ?['1', '2', '7', '8', '9']?
‘\D’ 匹配非數(shù)字
pattern = re.compile(r'\D')
re.findall(pattern,input)
out: ?['p',?'y',?'t',?'h','o',?'n',?'學(xué)',?'習(xí)',?'很',?'重',?'要',?',',?'正',?'則',?'表',?'達(dá)',?'也',?'很',?'重',?'要',?' ',?'。',?' ',?'a',?'b',?'c',?'A',?'B','C']
‘\W’ 匹配非字母和數(shù)字
pattern = re.compile(r'\W')
re.findall(pattern,input)
out:?[',', ' ', '。', ' ']
‘\s’ 匹配間隔符
pattern = re.compile(r'\s')
re.findall(pattern,input)
out:[' ', ' ']
重復(fù)
正則式可以匹配不定長(zhǎng)的字符串
‘*’ 0 或多次匹配
pattern = re.compile(r'\d*')
re.findall(pattern,input)
out:?['',?'',?'',?'',?'',?'',?'',?'',?'','',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'12',?'',?'',?'',?'',?'',?'',?'789',?'']
‘+’ 1 次或多次匹配
pattern = re.compile(r'\d+')
re.findall(pattern,input)
out:?['12', '789']
‘?’ 0 或 1 次匹配
pattern = re.compile(r'\d?')
re.findall(pattern,input)
out:?
['',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'',?'1',?'2',?'',?'',?'',?'',?'',?'',?'7',?'8',?'9',?'']
?
精確匹配和最小匹配?
‘{m}’ 精確匹配 m 次
pattern = re.compile(r'\d{3}')
re.findall(pattern,input)
out:?['789']
?{m,n}’ 匹配最少 m 次,最多 n 次。 (n>m)
pattern = re.compile(r'\d{1,3}')
re.findall(pattern,input)
['12', '789']
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

