1. 什么是正則表達(dá)式
正則表達(dá)式(Regular Expressions),也稱為 “regex” 或 “regexp” 是使用單個字符串來描述、匹配一系列匹配某個句法規(guī)則的字符串,這樣程序就可以將該模式與任意文本字符串相匹配。
使用正則表達(dá)式,可以為要匹配的可能字符串集指定規(guī)則;此集可能包含英語句子,電子郵件地址,TeX命令或你喜歡的任何內(nèi)容
正則表達(dá)式引擎:
采用不同算法,檢查處理正則表達(dá)式的軟件模塊 PCRE (perl compatible regular expressions)
? 正則表達(dá)式的元字符分類: 字符匹配,匹配次數(shù),位置錨定,分組
Python/ target=_blank class=infotextkey>Python 的正則表達(dá)式是 PCRE標(biāo)準(zhǔn) 的。
2. 正則表達(dá)式基礎(chǔ)
# 字符匹配
. 匹配任意單個字符(換行符除外)
[]匹配指定范圍內(nèi)的任意單個字符: [0-9] [a-z]
^[xxx]以[]內(nèi)的任意字符開頭
[^xxx]: 除了[]內(nèi)的字符,相當(dāng)于取反
# 匹配次數(shù)
用于指定前面的字符要出現(xiàn)幾次
* 匹配前面的字符的任意次,包括0次, 貪婪匹配:盡可能長的匹配
.* 任意長度的任意字符
? 匹配其前面的字符0或1次
+ 匹配前面的字符至少1次
{n} 匹配前面的字符n次
{m,n} 匹配前面的字符至少m次,最多n次如{1,3} 匹配1到3次
{n,} 匹配前面的字符至少n次
# 位置錨定
# 用于定位出現(xiàn)的位置
^ 行首
$ 行尾
^$ 空行
# 分組
() 分組,用()將多個字符捆綁在一起,當(dāng)作一個整體處理
后向引用: 1,2
# | 或者
a|b a 或 b
(A|a)bc Abc或abc
# 轉(zhuǎn)義
反斜杠后面可以跟各種字符,以指示各種特殊序列。它也用于轉(zhuǎn)義所有元字符.因此您仍然可以在模式中匹配它們,如果你需要匹配 [ 或 ,你可以在它們前面加一個反斜杠來移除它們的特殊含義:[ 或 \。
d 匹配任何十進(jìn)制數(shù),等價于類 [0-9]
w 匹配任何字母與數(shù)字字符包括下劃線;這相當(dāng)于類 [a-zA-Z0-9_]。
s 匹配任何空白字符;這等價于類 [ tnrfv]。
D 匹配任何非數(shù)字字符;這等價于類 [^0-9]。
W 匹配任何非字母與數(shù)字字符;這相當(dāng)于類 [^a-zA-Z0-9_]。
S 匹配任何非空白字符;這相當(dāng)于類 [^ tnrfv]。
3. Python中使用正則表達(dá)式
在 python 中使用正則表達(dá)式要使用 re 模塊。
[正則表達(dá)式][
https://docs.python.org/zh-cn/3/howto/regex.html#regex-howto ]
[re模塊使用][
https://docs.python.org/zh-cn/3/library/re.html ]