-
1. 正則表達(dá)式
- 1.1 測試工具
- 1.2 限定符
- 1.3 字符集
- 1.4 運(yùn)算符
- 1.5 元字符
- 1.6 懶惰匹配和貪婪匹配
我們讀取文件內(nèi)容,肯定不是單純?yōu)榱溯敵龌蛘咧匦聦懭?,對于文本我們一定有一些查找、定位的需求?br> 在Python中,還有一個專門用于文本處理的庫,那就是
re
庫。下面我會介紹re庫涉及的正則表達(dá)式的基本知識。
參考課程
1. 正則表達(dá)式
正則表達(dá)式是用來進(jìn)行字符串匹配的一個字符形式。
1.1 測試工具
常見的正則表達(dá)式測試工具有:
- regex101
- 代碼編輯器搜索欄的正則表達(dá)式匹配
1.2 限定符
-
?
abc?
表示字符c
需要出現(xiàn)0次或者1次,或者換句話說,字符c
至多出現(xiàn)一次。也就是說,abc?
相當(dāng)于abc
和ab
這兩個字符串。 -
*
ab*c
表示字符b
需要出現(xiàn)0次或者多次,或者換句話說,字符b
可以出現(xiàn)任意多次。也就是說,ab*c
相當(dāng)于ac
、abc
、abbc
、ab……bc
等多個字符串。 -
+
ab+c
表示字符b
需要出現(xiàn)1次或者多次,或者換句話說,字符b
至少出現(xiàn)一次。也就是說,ab+c
相當(dāng)于abc
、abbc
、ab……bc
等多個字符串。
注意ab*c
和ab+c
的細(xì)微區(qū)別。 -
{}
-
{num}
ab{3}c
表示字符b
需要出現(xiàn)3次,或者換句話說,字符b
只能出現(xiàn)2次。也就是說,ab{2}c
相當(dāng)于abbc
這一個字符串。 -
{num1,num2}
ab{2,5}c
表示字符b
需要出現(xiàn)2或3或4或5次,也就是說,ab{2,5}c
相當(dāng)于abbc
、abbbc
、abbbbc
、abbbbbc
這四個字符串。 -
{num,}
ab{2,}c
表示字符b
需要出現(xiàn)2次及以上,也就說,ab{2,}c
相當(dāng)于abbc
、abbbc
、abbbbc
、ab……bc
等無數(shù)個字符串。
1.3 字符集
在正常情況下,上述的限定符只會對其前面的一個字符起作用。如果想要某個字符串作為一個組合,可以使用字符集。(ab)+c
表示字符串ab
需要出現(xiàn)1次或者多次,或者換句話說,字符串ab
至少出現(xiàn)一次。也就是說,(ab)+c
相當(dāng)于abc
、ababc
、abababc
、ab……abc
等多個字符串。
1.4 運(yùn)算符
-
|
a(b|d)c
表示字符串b
出現(xiàn)1次或者字符串d
出現(xiàn)1次,也就是說,a(b|d)c
相當(dāng)于abc
、adc
這兩個字符串。a(boy|girl)c
也同樣適用,相當(dāng)于aboyc
或者agirlc
這兩個字符。 -
[]
[]
表示匹配字符能選擇的范圍,成為字符類,例如,[abc]+
只會匹配a\b\c這三個字母出現(xiàn)一次或多次的字符串,而一般更經(jīng)常使用的是[a-zA-Z0-9]*
表示由大小寫字母和數(shù)字組成的字符串,[a-zA-Z0-9_]*
表示由大小寫字母、數(shù)字和下劃線組成的字符串。 -
^
^
表示取反字符類,也就是說,[^a-zA-Z0-9]*
表示除了大小寫字母、數(shù)字符號以外的其他字符出現(xiàn)一次或多次的字符串。 -
\
\.
表示轉(zhuǎn)置,把一些有特殊意義的字符轉(zhuǎn)變?yōu)閷?shí)際字符文章來源:http://www.zghlxwxcb.cn/news/detail-709924.html -
\b
\b
表示字符邊界文章來源地址http://www.zghlxwxcb.cn/news/detail-709924.html
1.5 元字符
-
\d
數(shù)字字符-
\D
非數(shù)字字符
-
-
\w
單詞字符,包括英文字母、數(shù)字、下劃線-
\W
非單詞字符
-
-
\s
空白字符,包括空格、制表符、換行符-
\S
非空白字符
-
-
.
任意字符,不包含換行符 -
^
匹配字符串的開頭,例如^a
匹配行首的a -
$
匹配字符串的結(jié)尾,例如x$
匹配行尾的x
1.6 懶惰匹配和貪婪匹配
- 貪婪匹配
默認(rèn)匹配盡可能多的字符。 - 懶惰匹配
例子:<.+>
匹配<
和>
之間的任意字符,而<.+?>
則會使用懶惰匹配
到了這里,關(guān)于【python技巧】文本處理-re庫字符匹配的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!