日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

python正則表達(dá)式詳解 電話號(hào)碼正則表達(dá)式語法( 二 )


re.findall(pattern, string, flags=0)搜索字符串,以列表類型返回全部能匹配的子串 。
【python正則表達(dá)式詳解 電話號(hào)碼正則表達(dá)式語法】參數(shù)同上 。
re.split(pattern, string, maxsplit=0, flags=0)將一個(gè)字符串按照正則表達(dá)式匹配結(jié)果進(jìn)行分割,返回列表類型 。

  • maxsplit:最大分割數(shù),剩余部分作為最后一個(gè)元素輸出
re.finditer(pattern, string, flags=0)搜索字符串,返回一個(gè)匹配結(jié)果的迭代類型,每個(gè)迭代元素都是Match對象 。
參數(shù)同上 。
for m in re.finditer(r'[1-9]d{5}', 'A100001 B100002'):if m:print(m.group(0))re.sub(pattern, repl, string, count=0, flags=0)在一個(gè)字符串中替換所有匹配正則表達(dá)式的子串,返回替換后的字符串 。
  • repl:替換匹配字符串的字符串
  • count:匹配的最大替換次數(shù)
sub = re.sub(r'[1-9]d{5}', ',hello', 'A100001 B100002')print(sub)Re庫的等價(jià)用法上面講解了Re庫六種基本方法的函數(shù)式用法,下面介紹另一種等價(jià)的面向?qū)ο蟮挠梅ǎ?br /> match = re.search(r'[1-9]d{5}', 'A100001')cmp = re.compile(r'[1-9]d{5}')match = cmp.search('A100001')第一種是函數(shù)式用法,一次操作可以完成任務(wù);第二種是面向?qū)ο笥梅?,先將正則表達(dá)式的字符串形式編譯成正則表達(dá)式對象,再進(jìn)行方法操作 。兩種方法都是可以的,了解即可 。
Re庫的貪婪匹配機(jī)制在實(shí)際使用過程中,我們會(huì)遇上一個(gè)問題,如下:
match = re.search(r'PY.*N', 'PYANBNCN')對這樣一個(gè)字符串,原則上是可以返回三個(gè)子串,即’PYAN’,’PYANBN’,’PYANBNCN’ 。但是我們調(diào)用match.group(0)查看時(shí),該返回哪一個(gè)呢?
Re庫默認(rèn)采用貪婪匹配機(jī)制,返回匹配中最長的子串,也就是返回’PYANBNCN’了 。
那又有一個(gè)問題了,當(dāng)我們想要輸出最短的子串該怎么辦呢??
我們只需在操作符后面添加?即可輸出最小匹配了:
python正則表達(dá)式詳解 電話號(hào)碼正則表達(dá)式語法


最小匹配
match = re.search(r'PY.*?N', 'PYANBNCN')if match:print(match.group(0))小結(jié)本章講解了Python中正則表達(dá)式Re庫的入門級(jí)使用,正則表達(dá)式并不是Python所獨(dú)有的,很多地方都可以使用,在學(xué)習(xí)完Re庫后對其他語言和任務(wù)也都有一定的幫助 。

推薦閱讀