元字符使正則表達(dá)式比普通字符串方法更強(qiáng)大。它們?cè)试S您創(chuàng)建正則表達(dá)式來(lái)表示諸如一個(gè)或多個(gè)數(shù)字的匹配。
如果要?jiǎng)?chuàng)建與元字符(如$)匹配的正則表達(dá)式,元字符的存在就會(huì)產(chǎn)生問(wèn)題。您可以通過(guò)在元字符前添加反斜杠來(lái)轉(zhuǎn)義字符。
但是這可能會(huì)導(dǎo)致問(wèn)題,因?yàn)榉葱备茉谄胀≒ython字符串中也有轉(zhuǎn)義函數(shù)。這可能意味著可能將三或四個(gè)反斜杠排成一行啦執(zhí)行所有轉(zhuǎn)義操作。
為了避免這種情況,您可以使用一個(gè)原始字符串,它是一個(gè)普通字符串,前面有一個(gè)"r"前綴。我們?cè)谥翱吹搅诉@以用法。
元字符"."用來(lái)匹配除了換行符外的任何字符
import re
pattern = r"gr.y"
if re.match(pattern, "grey"):
print("Match 1")
if re.match(pattern, "gray"):
print("Match 2")
if re.match(pattern, "blue"):
print("Match 3")
................................................
Match 1
Match 2
"^"表示匹配開(kāi)始,"$"表示匹配結(jié)束
import re
pattern = r"^gr.y$"
if re.match(pattern, "grey"):
print("Match 1")
if re.match(pattern, "gray"):
print("Match 2")
if re.match(pattern, "stringray"):
print("Match 3")
......................................................
Match 1
Match 2
匹配模式" ^gr.y$"意味著字符串應(yīng)該以gr開(kāi)頭,然后是一個(gè)除換行符以外的任何字符,并以y結(jié)尾。