萬用字元
含義示例
匹配結果
reg1 | reg2
匹配表示式reg1或者表示式reg2
foo | bar
bar.
匹配除\n以外的任意字元
ab.b
abdb
^匹配字串起始部分
$匹配字串終止部分
*匹配0次或多次前面出現的正規表示式
+匹配一次或多次前面出現的正規表示式
?匹配0次或1次前面出現的正規表示式
匹配m~n次前面出現的正規表示式
[abc]
匹配中括號內任意乙個字元,結果可能是a或b或c
[x-y]
匹配x~y範圍中的任意單個字元
[^x-y]
不匹配x~y範圍中的任意單個字元
(*|+|?|{})?
匹配上面頻繁出現符號的非貪婪版
(*|+|?|{})?
({})
\d匹配任何十進位制數字
\w匹配任何字母數字字元,相當於類[a-za-z0-9_]
\s匹配任何空格字元,它相當於類[\t\n\r\f\v]
\b匹配任何單詞邊界
\1.反斜槓後邊跟元字元去除特殊功能;(即將特殊字元轉義成普通字元),2.反斜槓後邊跟普通字元實現特殊功能;(即預定義字元),3.\2引用序號對應的字組
標誌含義
re.i(ignorecase)
使匹配對大小寫不敏感
re.s(dotall)
使.匹配包括換行在內的所有字元
re.l(locale)
做本地化識別(locale-aware)匹配,法語等
re.m(multiline)
多行匹配,影響^和$
re.x(verbose)
該標誌通過給予更靈活的格式以便將正規表示式寫得更易於理解
re.u
根據unicode字符集解析字元,這個標誌影響\w,\w,\b,\b
re.search(pattern, string, flags)
使用可選標記搜尋字串中第一次出現的正規表示式模式。如果匹配成功,則返回匹配物件,否則返回none
import re
#與re.match()的區別:match從字串起始位置開始匹配,此例中match將返回none
m = re.search(
'foo'
,'asdasdfooasd'
)if m is
notnone
:print
(m.group(
))
re.match(pattern, string, flags),從字串起始位置開始匹配,若匹配失敗,則返回none
import re
m = re.match(
'(foo\w)(\w)'
,"fooabwder"
)print
(m.group(0)
)#fooab
print
(m.group(1)
)#fooa
print
(m.group(2)
)#bprint
(m.groups())
#("fooa", "b")
re.findall(pattern, string, flags)找出所有匹配的項,並以列表形式返回
re.finditer(pattern, string, flags)功能與上面findall一樣,不過返回的時迭代器。
import re
m = re.findall(
"foo\w"
,"foosdfooefefeffoo2"
)print
(m)#['foos', 'fooe', 'foo2']
re.split(pattern, string, max=0)
根據pattern將string分割成列表,並返回列表,分割操作max次
re.sub(pattern, newcontent, string,num,flags=0)
將匹配的內容替換成newcontent,替換num次
import re
str=
#將第乙個年份2005替換成「hi」
m = re.sub(
"\d"
,'hi'
,str,1
)print
(m)
Python re模組的常用方法
findall 功能 匹配字串中所有符合條件的 返回值 列表,會將所有匹配到的項加入到列表中返回 import re phone num 17344332233 待匹配的字串 regex r 1 3 9 d 匹配手機號使用的正則 ret re.findall regex,num print ret ...
Python re 正則模組
有些字元比較特殊,它們和自身並不匹配,而是會表明應和一些特殊的東西匹配,或者它們會影響到 re 其它部分的重複次數,它們叫元字元。其中 m 和 n 是十進位制整數。該限定符的意思是至少有 m 個重複,至多到 n 個重複。舉個例子,a b 將匹配 a b a b 和 a b 它不能匹配 ab 因為沒有...
python re 模組小結
前言 本人環境windows 7 64 位,python2.7 re是什麼 regular expression縮寫,意為正規表示式,是 python 的眾多模組之一 re用途 從文字中有選擇的批量抽取想要的文字碎片 re型別 分為dfa 確定的有窮狀態自動機 和 nfa 非確定的有窮狀態自動機 r...