re正則匹配 必會的80 操作

2021-10-04 13:46:33 字數 1650 閱讀 5861

1、re.match() # 從頭開始匹配,第乙個字元就要符合規則

import re

res =re.match(

r'[a-z]\d'

,'qas13223455432'

)# 'qas'

2、re.search() # 匹配包含
import re

res = re.search(

r'\d'

,'qas13223455432'

)# '13223455432'

3、re.findall() # 把所有匹配到的字元放在列表中返回
import re

res = re.findall(

"ab"

,"abb abc abbcbbb"

)#['abb', 'ab', 'abb']

4、re.split() # 以匹配到的字元當作列表分隔符
import re

re.split(

"\d+"

,"abcabc123abbacbbb"

)# '['abcabc', 'abbacbbb']

5、re.sub() # 匹配字元並替換
import re

aaa =

'asnkjadkah2312ajsn'

p = re.

compile

(r'[a-z]'

)res = p.sub(

'0', aaa)

# 00000000002312ajsn

6、re.fullmatch # 全部匹配
import re

res = re.fullmatch(

r'\w*\d'

,'qas13223455432'

)# qas13223455432

7、re.compile(pattern,flags=0) # 提前編譯好,省去每次匹配前的編譯過程
pattern: 正則匹配規則

flags:標誌符

1) re.i(re.ignorecase)

: 忽略大小寫(括號內是完整寫法,下同)

2) re.m(multiline)

: 多行模式,改變』^』和』$』的行為

3) re.s(dotall)

: 改變』.』的行為,make the 『.』 special character match any character at all

, including a newline; without this flag, 『.』 will match anything except a newline.

4) re.x(re.verbose) 可以給你的表示式寫注釋,使其更可讀,下面這2個意思一樣

a = re.

compile

(r"""\d + # the integral part

\. # the decimal point

\d * # some fractional digits"""

, re.x)

b = re.

compile

(r"\d+\.\d*"

)

正則匹配 re

匹配一行字串的開頭 匹配任意字元,除了換行符 匹配括號中的任乙個,amk 匹配 a m 或 k 不在中的字元 abc 匹配除了a,b,c之外的字元 匹配0個或多個的表示式 匹配1個或多個的表示式 匹配0個或1個由前面的正規表示式定義的片段,非貪婪方式 f r t n 匹配所有的白字元 a z 除了小...

re 正則匹配的非貪婪匹配

非貪婪匹配 將盡可能少的匹配內容,當?出現在其他的重複次數後面時會將貪婪模式改為非貪婪模式。如 abc.abc.非貪婪匹配 盡可能少的匹配?號表示 號前面的字元出現0 無數個 號表示最少匹配 號表示 號前面的字元出現1 無數個 表示0 1個 print re.findall r ab aababba...

python 字串匹配 正則 re

1.re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match 就返回none。import re content 123i love 123 you pattern r 123 res re.match pattern,content print res prin...