元字元功能說明
^匹配字串的開始
$匹配字串的結束
.匹配除換行符以外的任意字元
\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也會變.有潔癖的程式設計師不願意...