python 正規表示式

2021-10-03 14:30:06 字數 3337 閱讀 4848

正規表示式

字元表示例項

\d0-9的任何數字

\d0-9的以外的任何字元

\w任何字母、數字、下劃線,可認為匹配單詞

\w\w以外的任何字元

\s空格、製表符\t、換行符\n,可認為是匹配』空白『字元

\s\s以外的任何字元

import re #re模組包含正則表達相關含函式

#匹配"asfasf123-123-1234asfasf"中的123-123-1234

reg = re.

compile

(r'\d\d\d-\d\d\d-\d\d\d\d'

)reg1 = re.

compile

(r'(\d\d\d)-(\d\d\d-\d\d\d\d)'

)#和reg一樣,只是分為2組

reg2 = re.

compile

(r'\d-\d-\d'

)#------------------------------------

#title:使用管道'|'匹配多個分組

#tips :如果要匹配字串中的'|',則需要使用倒斜槓轉義,即\|

#------------------------------------

reg = re.

compile

(r'batman|tina fey'

)#匹配第一次出現的文字

#對於'batman and tina fey'的匹配,結果為'batman'

#對於'tina fey and batman'的匹配,結果為'tina fey'

reg1 = re.

compile

(r'bat(man|mobile|bat|copter)'

)#匹配字串中含有batman、batmobile、batbat、batcopter中的某乙個

#------------------------------------

#title:使用'?'實現可選匹配

#tips :如果要匹配字串中的'?',則需要使用倒斜槓轉義,即\?

#------------------------------------

reg = re.

compile

(r'bat(wo)?man'

)#模式wo為可選的分組,wo出現0次或1次,既可匹配字串中的batman,也可匹配batwoman

#------------------------------------

#title:使用'*'匹配0次或多次

#tips :如果要匹配字串中的'*',則需要使用倒斜槓轉義,即\*

#------------------------------------

reg = re.

compile

(r'bat(wo)*man'

)#(wo)*匹配'wo'零次或多次,可匹配batman、batwoman、batwowoman...

#------------------------------------

#title:使用'+'匹配1次或多次

#tips :如*果要匹配字串中的'+',則需要使用倒斜槓轉義,即\+

#------------------------------------

reg = re.

compile

(r'bat(wo)+man'

)#(wo)+匹配'wo'1次或多次,可匹配batwoman、batwowoman...

#------------------------------------

#title:使用'{}'匹配特定次數

#tips :

#------------------------------------

reg = re.

compile

(r'(ha)'

)#'ha'出現3次,匹配字串中的』hahaha',但不會匹配'haha'

# 出現3-5次 至少出現3次以上

#------------------------------------

#title:貪心(ha)和非貪心(ha)?匹配

#tips :

#------------------------------------

#對於包含'hahahahaha'的字串

reg1 = re.

compile

(r'(ha)'

)#貪心匹配結果為hahahahaha,ha出現5次的

reg2 = re.

compile

(r'(ha)?'

)#非貪心匹配結果為hahaha,ha出現3次的

#[0-5] 和 (0|1|2|3|4|5) 作用一樣,匹配0-5中的乙個

#[aeiouaeiou]匹配母音字元,不論大小寫 [^aeiouaeiou] 則是匹配非母音字元

#[a-za-z0-9] 匹配所有的大小寫字母和數字

#方括號內正規表示式符號一般不被解釋,不需要在'.'、'?'、'()'用'\'轉義

#------------------------------------

#title:開始'^'末尾'$'

#tips :插入符號'^'

#------------------------------------

reg = re.

compile

(r'^hello'

)#匹配以'hello'開始的字串

#r'\d$' 匹配以0-9中某個數結束的字串

#r'^\d+$' 匹配從開始到結束都是數字的字串

#------------------------------------

#title:萬用字元'.'

#tips :匹配除換行之外所有字元,如果要匹配字串中的'.',則需要使用倒斜槓轉義,即\.

#------------------------------------

#r'.at' 匹配cat、lat、hat...., '.'只能匹配乙個字元

#r'.*at' 匹配cccccat、9-098.\.at...., '.*'匹配所有字元, 如r'first name:(.*) last name:(.*)'

##對於'for dinner.>'

##r'<.*>' 匹配結果為'for dinner.>' 貪心匹配

##r'<.*?>' 匹配結果為'' 非貪心匹配

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模組的講解很簡單易懂,內容不多但起碼把人領進門了,...