python 正規表示式

2022-06-11 03:09:11 字數 2962 閱讀 9613

常用re模組的表示方式

字元\d  匹配數字

\d  匹配非數字

\s  匹配空白符

.   匹配除換行符以外的所有字元

\b  匹配單詞的開始後者結束

\w  匹配字母或數字或下劃線或漢字

^  匹配字元的開始

$  匹配字元的結束

次數*  匹配零次至無限次

+  匹配一次至無限次

?  匹配零次至一次

匹配n次

匹配n次之無限次

匹配n次至m次

常用5種方法:match, search, findall,split,sub,

match(pattern, string, flags=0)

從開始位置開始匹配,成功返回乙個物件,未匹配返回none

import

rea = "

asdsfsfhaj67772hhsdja

"result1 = re.match("

as\w?

", a)

print

(result1.group())

result2 = re.match("

(a)(s)\w?

", a)

print

(result2.groups())

result3 = re.match("

(?pa)(?ps)\w?

", a)

print

(result3.groupdict())

執行結果:

asd('a

', 's'

)

search(pattern, string, flags=0)

瀏覽整個字元匹配第乙個,未匹配返回none,(用法跟match出不多)

import

rea = "

sdsfsfhasj67772hhsdja

"result1 = re.search("

as\w?

", a)

print

(result1.group())

result2 = re.search("

(a)s\w?

", a)

print

(result2.groups())

result3 = re.search("

(?pa)(?ps)\w?

", a)

print

(result3.groupdict())

結果:asj('

a',)

findall(pattern, string, flags=0)

獲取非重複的匹配列表;如果有乙個組則以列表形式返回,且每乙個匹配均是字串;如果模型中有多個組,則以列表形式返回,且每乙個匹配均是元祖;

空的匹配也會包含在結果中

import

rea = "

asdsfsfhasj67772hhasysdja"#

無分組result1 = re.findall("

as\w?

", a)

print

(result1)

#有分組

result2 = re.findall("

a(s)(\w)s

",a)

print

(result2)

結果:[

'asd

', '

asj', '

asy'][(

's', '

d'), ('

s', '

y')]

替換匹配成功的字串

sub(pattern, repl, string, count=0, flags=0)

pattern: 正則模型

repl   : 要替換的字串或可執行物件

string : 要匹配的字串

count  : 指定匹配個數

flags  : 匹配模式

import

rea = "

i like coding

"result = re.sub("

like

", "

love

", a)

print

(result)

結果:i love coding

根據正則匹配分割字串    (可以用來寫簡單的計算器)

split(pattern, string, maxsplit=0, flags=0)

pattern: 正則模型

string : 要匹配的字串

maxsplit:指定分割個數

flags  : 匹配模式

import

rea = "

y like coding

"result = re.split("i"

, a)

print

(result)

結果:[

'y l

', '

ke cod

', '

ng']

正規表示式的另一種方法

regex = re.compile(pattern, flags=0)

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