五5-2Python常用正則表達式
1、常用正則表達式
Python支持的正則表達式元字符和語(yǔ)法:
正則表達式 | 代表的匹配字符 |
[0-9] | 0123456789任意之一 |
[a-z] | 小寫(xiě)字母任意之一 |
[A-Z] | 大寫(xiě)字母任意之一 |
\d | 等同于[0-9] |
\D | 等同于[^0-9]匹配非數字 |
\w | 等同于[a-z0-9A-Z_]匹配大小寫(xiě)字母、數字和下劃線(xiàn) |
\W | 等同于[^a-z0-9A-Z_]等同于上一條取非 |
正則表達式里的元字符及其作用
元字符 | 說(shuō)明 |
. | 代表任意字符 |
| | 邏輯或操作符 |
[ ] | 匹配內部的任一字符或子表達式 |
[^] | 對字符集和取非 |
- | 定義一個(gè)區間 |
\ | 對下一字符取非(通常是普通變特殊,特殊變普通) |
* | 匹配前面的字符或者子表達式0次或多次 |
*? | 惰性匹配上一個(gè) |
+ | 匹配前一個(gè)字符或子表達式一次或多次 |
+? | 惰性匹配上一個(gè) |
? | 匹配前一個(gè)字符或子表達式0次或1次重復 |
{n} | 匹配前一個(gè)字符或子表達式 |
{m,n} | 匹配前一個(gè)字符或子表達式至少m次至多n次 |
{n,} | 匹配前一個(gè)字符或者子表達式至少n次 |
{n,}? | 前一個(gè)的惰性匹配 |
^ | 匹配字符串的開(kāi)頭 |
\A | 匹配字符串開(kāi)頭 |
$ | 匹配字符串結束 |
[\b] | 退格字符 |
\c | 匹配一個(gè)控制字符 |
\d | 匹配任意數字 |
\D | 匹配數字以外的字符 |
\t | 匹配制表符 |
\w | 匹配任意數字字母下劃線(xiàn) |
\W | 不匹配數字字母下劃線(xiàn) |
2 re正則對象和正則匹配效率比較
re模塊
正則表達式是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配。
re 模塊使 Python 語(yǔ)言擁有全部的正則表達式功能。
compile 函數根據一個(gè)模式字符串和可選的標志參數生成一個(gè)正則表達式對象。該對象擁有一系列方法用于正則表達式匹配和替換。
re模塊也提供了與這些方法功能完全一致的函數,這些函數使用一個(gè)模式字符串做為它們的第一個(gè)參數。
re模塊是python中處理正則表達式的一個(gè)模塊,通過(guò)re模塊的方法,把正則表達式pattern編譯成正則對象,以便使用正則對象的方法。
正則匹配時(shí),優(yōu)先編譯成正則對象,然后進(jìn)行匹配,程序的執行效率高。
3 編譯正則對象
正則匹配字符‘r’
r表示raw的簡(jiǎn)稱(chēng)。raw string意思是原生字符,這個(gè)字符串中間的特殊字符不用轉義
如表示'\n',可以這樣:r'\n' 或者'\\n'
1、re.compile([pattern[,flags]])
這個(gè)方法就是把字符串的正則表達式編譯成正則對象,第二個(gè)flag是匹配模式,取值可以使用按位或運算符"|"表示同時(shí)生效。如:re.I|re.M,flag的可選項有:
re.I(re.IGNORECASE):忽略大小寫(xiě)
M(MULTILINE):多行模式,改變'^'和'$'的行為
S(DOTALL):點(diǎn)任意匹配模式,改變'.'的行為
X(VERBOSE):詳細模式。這個(gè)模式下增長(cháng)表達式可以是多行,忽略空白字符,并可以加入注釋?zhuān)旅鎯蓚€(gè)正則是等效的
a = re.compile(r"""\d + # the integral part
\. # the decimal point
\d * # some fractional digits""", re.X)
b = re.compile(r"\d+\.\d*")
- 上一篇 ?PHP常用正則表達式匯總
- 下一篇 ?java中正則表達式常用方法