Python 正規表示式

2021-09-29 12:07:16 字數 1842 閱讀 1830

importre#

匹配通用字元

#\w 任意字母/數字/下劃線

#\w 和小寫w相反

#\d 十進位制數字

#\d 除了十進位制數以外的值

#\s 空白字元

#\s 非空白字元

#匹配數字.英文.中文

#數字[0-9]

#英文[a-z][a-z]

#中文[\u4e00-\u9fa5]

#元字元

#. 匹配任意字元 \n除外

#^ 匹配字串開始位置

#$ 匹配字串中結束的位置

#* 重複o,1,n次前面的原子

#? 重複0,1次前面的原子

#+ 重複1,n次前面的原子

#匹配固定次數

#以前的原子出現n次

#至少出現n次

#出現次數介於n-m之間

#多個表示式 | 連線2個正規表示式或用算

#strr="15011143537"

#strs="023-110120"

#pat=re.compile(r"^1\d$|^\d-\d$",re.i)

#print(pat.findall(strs))#分組

#strr="111test1

222test2

333"

#pat=re.compile(r"(.*?)

",re.i)

#print(pat.findall(strr))

#貪婪模式和非貪婪模式

#貪婪模式:在整個表示式匹配的前提下,盡可能多的匹配

#非貪婪模式:在整個表示式匹配的前提下,盡可能少的匹配?

#python預設是貪婪模式

#compile() --將正規表示式轉換為內部格式,提高執行效率

#match和search函式

#match--匹配開頭

#search--匹配任意位置

#都只匹配一次

#strr="111test1

222test2

333"

#pat=re.compile(r"(.*?)

",re.i)

##加上問號不貪婪,這結果為['test1', 'test2']不加貪婪模式為['test1

222test2']

#print(pat.findall(strr))

#findall() 查詢所有匹配的內容,裝到列表中

#finditer() 查詢所有匹配的內容,裝到迭代器中

#str="aaa-----jinwei------------jinwei---bbbb"

#pat=re.compile(r"jinwei",re.i)

#print(pat.findall(str))

#str="aaa-----jinwei------------jinwei---bbbb"

#pat=re.compile(r"jinwei",re.i)

#data=pat.finditer(str)

#for i in data:

#print(i.group())

#split() 按照能匹配的子字串分割後返回列表

#sub() 用於替換

#strr="jinwei1,,,jinwei2,,,jinwei3,,,"

#pat=re.compile(r",,,",re.i)

#print(pat.split(strr))

#strr="jinwei1,,,jinwei2,,,,,,jinwei3,,,"

#pat=re.compile(r",,,",re.i)

#print(pat.sub("---",strr))

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...