Excel2016打印預覽表格的教程是什么(excel2016怎么看打印預覽)">Excel2016打印預覽表格的教程是什么(excel2016怎么看打印預覽)
1027
2022-05-29
在一篇文檔中,你可能很熟悉文本查找,按下‘Ctrl+F’輸入你想要查找的詞便可以實現。
但是在python中使用正則表達式則更進一步,它可以讓你指定要查找的特定模式,并且根據該模式特定匹配在整個文本中所符合條件的內容。
其實正則表達式在很多編程語言中都是十分有用的,但如果不是程序員,很少有人會去了解它,現在大多數文本編輯器和文字處理器都有查找和替換的功能,都可根據正則表達式查找。
與此同時,正則表達式也可以節約大量的時間,它不僅適用于軟件用戶,也適用于進行軟件開發的程序員。
技術作家Cory Doctorow就曾調侃道:“在教授編程之前,應該先教授正則表達式。”
其實如果你了解正則表達式,便意味著可以用三步解決一個問題,而不是3000步。如果你是一個技術大牛,那么你用幾次敲擊鍵盤就能解決的問題,別人可能要數天的繁瑣工作才可以解決,并且容易犯錯。這就是Python和現代人工智能所帶來的便捷之處!
所以在這篇文章中,大灰狼會和大家分享用正則表達式來尋找文本模式,和正則表達式所具備的一些強大功能。
那么何為正則表達式?
正則表達式簡稱為「Regex」,是一種文本模式的敘述方法。例如‘\d’是一個正則表達式,它所表示的是0-9的數字集合。在Python中就可以使用‘\d’的正則表達式來匹配一連串的數字。
如我們可以使用‘\d\d\d-\d\d\d\d-\d\d\d\d’來匹配我們通常所常見的電話號碼的‘三四四’格式。但這也只是單純的匹配數據,然而真正的正則表達式要比它復雜的多,同時正則表達式所具備的功能也遠比想象中的要豐富。
那么在Python中如何正確的使用正則表達式呢?
正則表達式隱含在Python的re模塊之中,當我們使用正則表達式的時候,首先要調用re模塊。
re模塊導入
import re
同時正則表達式的表示是使用re模塊中的compile()方法。向該方法中傳入一個字符串的值來表達正則表達式,它將返回一個Regex模式對象,這個對象就表示了將要匹配的內容的正則表達式格式。
compike()方法正則表達式的表示
telRegex=re.compile(r'\d\d\d-\d\d\d\d-\d\d\d\d')
那么我們在設定好正則表達式之后,該如何讓他進行文本匹配呢?
Regex對象的search()方法查找要尋找的字符串,尋找該正則表達式所有符合條件的匹配。
如果我們輸入的字符串中沒有類似的匹配,Search()方法將返回None(空值),如果找到了匹配,則search()方法將返回一個Match對象。其中mo是一個通用的名稱,它可以用于Match對象。
Search()方法匹配文本
telRegex=re.compile(r'\d\d\d-\d\d\d\d-\d\d\d\d') mo = telRegex.search('she tel is:123-4567-8910')
與此同時,Match對象有一個group()方法,它返回被查找的字符串中實際匹配的文本。
在交互式環境下,輸入以下代碼就會呈現相應的效果,
group()方法輸入匹配文本
mo = telRegex.search('she tel is:123-4567-8910') print(mo.group())
由此就可以看出,通過正則表達式來匹配尋找文本中的內容,比以往普通的方法要簡單而方便的多。
同時,大灰狼也為大家總結了正則表達式匹配的具體方法步驟:
用import.re導入正則表達式模塊
用re.compile()函數創建一個Regex對象(在此記得要使用原始字符串r)
向Regex對象的search()方法傳入想要查找的字符串,它將返回一個Match對象
調用Match對象的group()方法返回實際匹配文本的字符串
匹配文本中的電話號碼具體的實現代碼如下:
文本電話號碼匹配
import re
telRegex=re.compile(r'\d\d\d-\d\d\d\d-\d\d\d\d') mo = telRegex.search('she tel is:123-4567-8910') print(mo.group())
以上就是正則表達式的最基本的使用方法,但正則表達式的使用過程中,還會使用到很多方法,如大小寫字母、特殊字符、空格換行符等類型的匹配。
我也會陸續在之后的文章中和大家分享Python中正則表達式的深入應用。
覺得有用記得關注分享,大灰狼陪你一起進步!
Python 正則表達式
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。