python常用的正則表達式大全
1.正則表達式
正則表達式是用來匹配與查找字符串的,從網(wǎng)上爬取數(shù)據(jù)自然或多或少會用到正則表達式,python的正則表達式要先引入re模塊,正則表達式以r引導,例如:
其中**r“\d+”**正則表達式表示匹配連續(xù)的多個數(shù)值,search是re中的函數(shù),從"abc123cd"字符串中搜索連續(xù)的數(shù)值,得到"123",返回一個匹配對象,結果如上.
2.字符串"\d"匹配0~9之間的一個數(shù)值
3.字符"+"重復前面一個匹配字符一次或者多次.
注意:**r"b\d+"**第一個字符要匹配"b",后面是連續(xù)的多個數(shù)字,因此"是b1233",不是"a12".
4.字符"*"重復前面一個匹配字符零次或者多次.
“" 與 "+"類似,但有區(qū)別,列如:
可見 r"ab+“匹配的是"ab”,但是r"ab “匹配的是"a”,因為表示"b"可以重復零次,但是”+“卻要求"b"重復一次以上.
5.字符"?"重復前面一個匹配字符零次或者一次.
匹配結果"ab”,重復b一次.
6.字符".“代表任何一個字符,但是沒有特別聲明時不代表字符”\n".
結果“.”代表了字符"x".
7."|"代表把左右分成兩個部分 .
結果匹配"ab"或者"ba"都可以.
8.特殊字符使用反斜杠"“引導,例如”\r"、"\n"、"\t"、"\"分別表示回車、換行、制表符號與反斜線自己本身.
9.字符"\b"表示單詞結尾,單詞結尾包括各種空白字符或者字符串結尾.
結果匹配"car",因為"car"后面是一個空格.
10."[]中的字符是任選擇一個,如果字符ASCll碼中連續(xù)的一組,那么可以使用"-"字符連接,例如[0-9]表示0-9的其中一個數(shù)字,[A-Z]表示A-Z的其中一個大寫字符,[0-9A-z]表示0-9的其中一個數(shù)字或者A-z的其中一個大寫字符.
11."^"出現(xiàn)在[]的第一個字符位置,就代表取反,例如[ ^ab0-9]表示不是a、b,也不是0-9的數(shù)字.
12."\s"匹配任何空白字符,等價"[\r\n\x20\t\f\v]"
13."\w"匹配包括下劃線子內(nèi)的單詞字符,等價于"[a-zA-Z0-9]"
14."$"字符比配字符串的結尾位置
匹配結果是最后一個"ab",而不是第一個"ab"
15.使用括號(…)可以把(…)看出一個整體,經(jīng)常與"+"、"*"、"?"的連續(xù)使用,對(…)部分進行重復.
結果匹配"abab","+“對"ab"進行了重復
16.查找匹配字符串
正則表達式re庫的search函數(shù)使用正則表達式對要匹配的字符串進行匹配,如果匹配不成功返回None,如果匹配成功返回一個匹配對象,匹配對象調用start()函數(shù)得到匹配字符的開始位置,匹配對象調用end()函數(shù)得到匹配字符串的結束位置,search雖然只返回匹配第一次匹配的結果,但是我們只要連續(xù)使用search函數(shù)就可以找到字符串全部匹配的字符串.
匹配找出英文句子中所有單詞
我們可以使用正則表達式r”[A-Za-z]+\b"匹配單詞,它表示匹配由大小寫字母組成的連續(xù)多個字符,一般是一個單詞,之后"\b"表示單詞結尾.
程序開始匹配到一個單詞后m.start(),m.end()就是單詞的起始位置,s[start:end]為截取的單詞,之后程序再次匹配字符串s=s[end:],即字符串的后半段,一直到匹配完畢為止就找出每個單詞.
總結
到此這篇關于python常用正則表達式的文章就介紹到這了,更多相關python正則表達式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
tensorflow 獲取checkpoint中的變量列表實例
今天小編就為大家分享一篇tensorflow 獲取checkpoint中的變量列表實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02