Python高階學習筆記之正規表示式

2021-10-03 07:52:12 字數 2965 閱讀 3442

元字元功能說明

^匹配字串的開始

$匹配字串的結束

.匹配除換行符以外的任意字元

\d匹配數字

\b匹配單詞頭或單詞尾

\w匹配任何字母、數字以及下劃線

\s匹配任何空白字元,包括空格、製表符、換頁符

\b與\b相反,匹配非單詞邊界

\w與\w相反

\s與\s相反

{}前的字元或子模式重複至少m次,至多n次

re.findall()函式

作用:遍歷整個字串,可以獲取其中所有匹配的字串,返回乙個列表。

一般用法:

re.findall(r'正規表示式','要匹配的文字'

)

compile()函式

作用:編譯正規表示式模式,返回乙個物件的模式。

一般用法:

a = re.

compile

(pattern,flags=0)

a.findall(

'要匹配的文字'

)#使用方法

其中:

常用的flags有:

標誌含義

re.s(dotall)使.匹配包括換行在內的所有字元

re.i(ignorecase)使匹配對大小寫不敏感

re.l(locale)做本地化識別(locale-aware)匹配,法語等

re.m(multiline)多行匹配,影響^和$

re.x(verbose)該標誌通過給予更靈活的格式以便將正規表示式寫得更易於理解

re.u根據unicode字符集解析字元,這個標誌影響\w,\w,\b,\b

match()函式

作用:在字串剛開始的位置匹配,在開頭匹配到目的字元便返回,如果開頭沒有目的字元將匹配失敗,返回none。

一般格式:

re.match(pattern, string, flags=

0)

match()函式返回的是乙個match object物件,而match object物件有以下方法:

search()函式

作用:在字串內查詢模式匹配,只要找到第乙個匹配然後返回。如果字串沒有匹配,則返回none。

一般格式:

re.search(pattern, string, flags=

0)

match()和search()比較類似,它們的區別在於match()只匹配字串的開頭,如果開頭沒有出現目的字串,即使後面出現了也不會進行匹配;search()函式會在整個字元內匹配,只要找到乙個目的字串就返回。

finditer()函式

作用:搜尋字串,返回乙個match物件的迭代器。找到正則匹配的所有子串,把它們作為乙個迭代器返回。

一般格式:

re.finditer(pattern, string, flags=

0)

split()函式

作用:按照能夠匹配的子串,將string分割後返回列表。

一般格式:

re.split(pattern, string)
sub()函式

作用:使用re替換string中每乙個匹配的子串後,返回替換後的字串。

一般格式:

re.sub(pattern, repl, string, count)
其中:把string中的pattern替換為repl。

subn()函式

作用:返回替換次數。

一般格式:

subn(pattern, repl, string, count=

0, flags=

0)

其中:subn()函式不僅返回了替換後的字串,還返回了替換的次數。

Python高階學習筆記之JSON

使用json庫 json 是一種輕量級的文字資料交換格式。與 xml 相比,擁有更小 更快 更易解析的特點。其結構和 python 的list dict有點相似。資料表示 json 中資料都以名稱 值的形式表示,名稱包括在一對雙引號 中,值則有多種形式,多條資料之間用逗號,隔開。這種表示方式與 py...

Python高階學習筆記之XML

使用sax庫解析xml 使用elementtree解析xml xml 全稱可擴充套件標記語言,是一種用於標記電子檔案使其具有結構性的標記語言,可以用來標記資料 定義資料型別。xml 的宣告 xml 文件的宣告是可選的,如果要宣告,需要將其放在文件的第一行最頂端。1.0 encoding utf 8 ...

Python總結之 正則高階

原來寫過一篇關於正規表示式的文章,這裡再補充幾個實際專案中用到的例子.注意 下面樣例都是scala 1 捕獲組命名 使用捕獲組的時候,程式設計師可能需要趴在顯示器上,用一張紙擋著螢幕,從左往右數括號,聚精會神好像拆彈,而且正規表示式一旦發生變化,group的index也會變.有潔癖的程式設計師不願意...