Python 中使用正則表達(dá)式轉(zhuǎn)義
這篇文章是關(guān)于 Python 正則表達(dá)式轉(zhuǎn)義的。 此外,我們將介紹 Python 正則表達(dá)式轉(zhuǎn)義以及如何通過(guò)適當(dāng)?shù)氖纠a使用它,以及 Python 正則表達(dá)式的多種用途。
此外,Python 支持使用正則表達(dá)式(或正則表達(dá)式)對(duì)字符串進(jìn)行搜索和替換操作。
Python 正則表達(dá)式轉(zhuǎn)義
RegEx 是一種根據(jù)預(yù)定義模式匹配文本的強(qiáng)大技術(shù)。 將文本與特定模式進(jìn)行比較可以檢測(cè)它是否存在。
它還可以將模式分解為子模式。 在 Python 中,正則表達(dá)式轉(zhuǎn)義可以執(zhí)行范圍廣泛的任務(wù)。
它可以執(zhí)行搜索和替換操作、替換文本中的模式以及檢查字符串是否包含特定模式。 今天我們還將使用正則表達(dá)式執(zhí)行搜索和替換操作。
Python 中的正則表達(dá)式可以使用標(biāo)準(zhǔn)庫(kù)中的 re 模塊來(lái)表達(dá)。 正則表達(dá)式和字符串考慮它們的主要目的,即執(zhí)行搜索。
如果有第一個(gè)匹配項(xiàng),則將返回匹配項(xiàng)。
Python 有一個(gè)默認(rèn)模塊 re,它可以幫助進(jìn)行搜索和替換。 我們的代碼必須在開始時(shí)導(dǎo)入模塊才能使用它。
import re
示例代碼:
import re match = re.search(r'Analytics', 'DataScience: Data Science & Analytics\ subfield of AI') print(match) print(match.group()) print("Begin the Index:", match.start()) print("Let's finish the Index:", match.end())
輸出:
<re.Match object; span=(28, 37), match='Analytics'>
Analytics
Begin the Index: 28
Let's finish the Index: 37
Python 正則表達(dá)式轉(zhuǎn)義的語(yǔ)法
原始屬性在這里由 r 字符(r’property’)表示,而不是由正則表達(dá)式表示。 與常規(guī)字符串不同,純字符串不會(huì)將 \ 字符解釋為轉(zhuǎn)義字符。
由于正則表達(dá)式引擎使用 / 字符進(jìn)行轉(zhuǎn)義的方式,它使用 / 字符進(jìn)行轉(zhuǎn)義。
讓我們用 Python 對(duì)此進(jìn)行詳細(xì)說(shuō)明。
import re # When an escape() is used in the first case, it returns a string with BackSlash '/' before every non-Alphanumeric character. In the second case, it returns a string with BackSlash '/' before '' only. print(re.escape("It was really a wonderful experience so far")) print(re.escape("I am curious about the experience [a-9], she said \t ^Awesome"))
輸出:
It\ was\ really\ a\ wonderful\ experience\ so\ far
I\ am\ curios\ about\ the\ experience\ \[a\-9\],\ she\ said\ \ \ \^Awesome
另外,如果要用Python中的正則表達(dá)式檢查字符串中是否存在某個(gè)單詞,可以用逗號(hào)分隔字符串。
只要字符串中沒有轉(zhuǎn)義字符,r 就會(huì)使字符串成為原始字符串,不處理轉(zhuǎn)義字符。
此外,re.match
從字符串的開頭開始匹配。 這意味著它搜索字符串和模式之間的精確匹配。
如果您需要在任何地方匹配字符串中的任何內(nèi)容,請(qǐng)使用 re.search。 下面是一個(gè)例子。
import re line = 'This,is,a,practice,string' re.match("practice", line) re.search("practice", line)
輸出:
<re.Match object; span=(10, 18), match='practice'>
此外,我們將了解 Python 正則表達(dá)式的多種用途。
Python 正則表達(dá)式的多次使用
搜索并替換為正則表達(dá)式
在 regex 方法中,搜索一個(gè)字符串,然后替換一些其他值。 Python 的 re.sub()
模塊中的 re.sub()
函數(shù)用于完成此操作。
語(yǔ)法:
re.sub(pattern, replacement, string, count=0, flags=0)
我們可以使用 Python 使用正則表達(dá)式搜索和查找字符串。 在這種情況下,字符串是包含您要操作的字符串的變量。
如果模式在字符串中多次出現(xiàn),我們可以指定您希望模式被替換多少次。 0 是默認(rèn)值; 在任何情況下,它都是可選的。
無(wú)需指定正則表達(dá)式標(biāo)志。
示例代碼:
import re str = "abid304@outlook.com" print(re.sub("[a-z]*@", "abc@", str))
輸出:
abid304abc@outlook.com
用正則表達(dá)式替換多模式
可以使用正則表達(dá)式一次替換多個(gè)模式。 可以使用以下語(yǔ)法輕松完成此操作。
語(yǔ)法:
re.sub(pattern_11 | pattern_22, replacement, string, count=0, flags=0)
示例代碼:
import re str = "MachineLearning is the Subfield of AI" print(re.sub(r"(\s)|(-)", ",", str))
輸出:
MachineLearning,is,the,Subfield,of,AI
使用正則表達(dá)式將多個(gè)模式替換為多個(gè)替換值
正則表達(dá)式也可用于用不同的替換項(xiàng)替換多個(gè)模式。 如以下示例所示,需要稍作修改。
示例代碼:
import re def convrt_case(mtch_obj): if mtch_obj.group(1) is not None: return mtch_obj.group(1).lower() if mtch_obj.group(2) is not None: return mtch_obj.group(2).upper() str = "mACHINE lEARNING IS THE sUBFIELD OF ai" print(re.sub(r"([A-Z]+)|([a-z]+)", convrt_case, str))
輸出:
Machine Learning is the Subfield of AI
如本例所示,該字符串同時(shí)包含需要替換的大寫和小寫字母。 大寫字母需要替換為小寫字母,反之亦然。
我們將創(chuàng)建兩個(gè)組,然后添加一個(gè)函數(shù)來(lái)替換它們。
在 Python 中,正則表達(dá)式轉(zhuǎn)義 sub()
方法用于替換字符串。 替換后的字符串由 re 模塊中的 Python 內(nèi)置方法返回。
確保導(dǎo)入 re 模塊。 在此方法中,搜索字符串中的模式并用新表達(dá)式替換。
我們希望這篇 Python 文章能幫助您了解如何更有效地在 Python 中使用正則表達(dá)式轉(zhuǎn)義。
到此這篇關(guān)于Python 正則表達(dá)式轉(zhuǎn)義的文章就介紹到這了,更多相關(guān)Python 正則表達(dá)式轉(zhuǎn)義內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于OpenCV python3實(shí)現(xiàn)證件照換背景的方法
這篇文章主要介紹了基于OpenCV python3實(shí)現(xiàn)證件照換背景的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Python實(shí)現(xiàn)的tcp端口檢測(cè)操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)的tcp端口檢測(cè)操作,結(jié)合實(shí)例形式分析了Python使用socket模塊實(shí)現(xiàn)tcp端口檢測(cè)功能的相關(guān)操作技巧,需要的朋友可以參考下2018-07-07Python Selenium網(wǎng)頁(yè)自動(dòng)化利器使用詳解
這篇文章主要為大家介紹了使用Python Selenium實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Python數(shù)據(jù)處理的三個(gè)實(shí)用技巧分享
數(shù)據(jù)處理無(wú)所不在,掌握常用技巧,事半功倍。這篇文章將使用Pandas開展數(shù)據(jù)處理分析,總結(jié)其中常用、好用的數(shù)據(jù)分析技巧,感興趣的可以學(xué)習(xí)一下2022-04-04Python 基于 pygame 實(shí)現(xiàn)輪播圖動(dòng)畫效果
在Python中可以適應(yīng)第三方庫(kù)pygame來(lái)實(shí)現(xiàn)輪播圖動(dòng)畫的效果,使用pygame前需確保其已經(jīng)安裝,本文通過(guò)實(shí)例代碼介紹Python 基于 pygame 實(shí)現(xiàn)輪播圖動(dòng)畫效果,感興趣的朋友跟隨小編一起看看吧2024-03-03PyTorch如何搭建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)
這篇文章主要介紹了PyTorch如何搭建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò),幫助大家更好的理解和學(xué)習(xí)PyTorch,感興趣的朋友可以了解下2020-08-08