溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python正則表達(dá)式如何使用

發(fā)布時(shí)間:2020-10-28 09:24:48 來(lái)源:億速云 閱讀:149 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)python正則表達(dá)式如何使用,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

正則表達(dá)式簡(jiǎn)介:

正則表達(dá)式(regex)用于探索給定字符串中的固定模式。我們想找到的模式可以是任何東西??梢詣?chuàng)建類似于查找電子郵件或手機(jī)號(hào)碼的模式。還可以創(chuàng)建查找以a開頭、以z結(jié)尾的字符串的模式。

創(chuàng)建模式:

使用正則表達(dá)式時(shí),首先需要學(xué)習(xí)的是如何創(chuàng)建模式。接下來(lái)將對(duì)一些最常用的模式進(jìn)行逐一介紹??梢韵氲阶詈?jiǎn)單的模式是一個(gè)簡(jiǎn)單的字符串。

pattern = r'times'
string = "It was the best of times, it was the worst of times."
print(len(re.findall(pattern,string)))

為了幫助創(chuàng)建復(fù)雜的模式,正則表達(dá)式提供了特殊的字符/操作符。下面來(lái)逐個(gè)看看這些操作符。

1、操作符

這在第一個(gè)例子中使用過(guò),可用于找到符合這些方括號(hào)中條件的一個(gè)字符。

  • [abc]-將查找文本中出現(xiàn)的所有a、b或c

  • [a-z]-將查找文本中出現(xiàn)的所有從a到z的字母

  • [a-z0–9A-Z]-將查找文本中出現(xiàn)的所有從A到Z的大寫字母、從a到z的小寫字母和從0到9的數(shù)字。

Python中運(yùn)行下列代碼:

pattern = r'[a-zA-Z]'
string = "It was the best of times, it was the worst of times."
print(len(re.findall(pattern,string)))

2、點(diǎn)算符

點(diǎn)運(yùn)算符(.) 用于匹配除換行符以外的任何字符。運(yùn)算符最大的優(yōu)點(diǎn)是,它們可以結(jié)合使用。

3、一些元序列

在使用正則表達(dá)式時(shí),一些模式會(huì)經(jīng)常被用到。因此正則表達(dá)式為這些模式創(chuàng)建了一些快捷方式。最常用的快捷方式如下:

  • \w,匹配任何字母、數(shù)字或下劃線。相當(dāng)于[a-zA-Z0–9_]

  • \W,匹配除字母、數(shù)字或下劃線以外的任何內(nèi)容。

  • \d,匹配任何十進(jìn)制數(shù)字。相當(dāng)于[0–9]。

  • \D,匹配除十進(jìn)制數(shù)字以外的任何數(shù)字。

正則表達(dá)式函數(shù)

目前為止,只使用了 re包中的findall 函數(shù),其實(shí)還有很多其他函數(shù)。下面來(lái)逐個(gè)介紹。

1、findall

上面已經(jīng)使用了 findall。這是我最常使用的一個(gè)。下面來(lái)正式認(rèn)識(shí)一下這個(gè)函數(shù)吧。

輸入:模式和測(cè)試字符串

輸出:字符串列表。

#USAGE:
pattern = r'[iI]t'
string = "It was the best of times, it was the worst of times."
matches = re.findall(pattern,string)
for match in matches:
print(match)------------------------------------------------------------
It
It
2、搜索
輸入:模式和測(cè)試字符串
輸出:首次匹配的位置對(duì)象。
#USAGE:
pattern = r'[iI]t'
string = "It was the best of times, it was the worst of times."
location = re.search(pattern,string)
print(location)
------------------------------------------------------------
<_sre.SRE_Match object; span=(0, 2), match='It'>
可以使用下面編程獲取該位置對(duì)象的數(shù)據(jù):
print(location.group())
------------------------------------------------------------
'It'

3、替換

這個(gè)功能也很重要。當(dāng)使用自然語(yǔ)言處理程序時(shí),有時(shí)需要用X替換整數(shù),或者可能需要編輯一些文件。任何文本編輯器中的查找和替換都可以做到。

輸入:搜索模式、替換模式和目標(biāo)字符串

輸出:替換字符串

string = "It was the best of times, it was the worst of times."
string = re.sub(r'times', r'life', string)
print(string)
------------------------------------------------------------
It was the best of life, it was the worst of life.

Python正則表達(dá)式應(yīng)用范圍:

1、PAN編號(hào)

2、查找域名

3、查找電子郵件地址

下面的正則表達(dá)式用于在長(zhǎng)文本中查找電子郵件地址。

match=re.findall(r'([\w0-9-._]+@[\w0-9-.]+[\w0-9]{2,3})',string)

關(guān)于python正則表達(dá)式如何使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI