python 中正則表達式的使用
阿新 • • 發佈:2018-02-08
定義 重復 png expr color 事先 正則表達式的使用 轉義字符 數字 正則表達式的定義
正則表達式(re)(Regular Expression)。正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。
在python中,可以通過內置的re模塊引用。
功能:
- 可以為想要匹配的 相應字符串集指定規則
- 該字符串集可能包含英文語句,e-amil地址,命令或者任何你想要的東西。
正則表達式——元字符
1. [ ]
- 常用來指定一個字符集:[abc]; [a-z]
- 元字符在字符集中不起作用:[akm$]
- 補集匹配不在區間範圍內的字符:[^5]
2. ^
- 匹配行首。除非設置MULTILINE標誌,它只是匹配字符串的開始。在MULTILINE模式裏,它也可以直接匹配字符串中的每個換行。
3. &
重復的使用
- *
- 指定前一個字符可以被匹配零次,或更多次,而不是只有一次,匹配引擎會試著重復盡可能多的次數 (不會超過整數的界定範圍,20億) 例如: a[bcd]*b ----- "abcbd"
- 匹配行尾,行尾被定義為要麽是字符串,要麽是一個換行字符後面的任何位置。
* +*
表示匹配一或更多次。
註意: 和——之間的不同;匹配零或更多次,所以可以根本就不出現,而+則要求至少出現一次。
?**
匹配一次或零次;可以認為它用於標識某事物是可選的。
{m,n}
其中m和n是十進制整數。該限定符的意思是至少有m個重復,至多到n個重復。a/{1,3}b
忽略m會認為下邊界是0,而忽略n的結果將是上邊界為無窮大(實際上是20億)
轉義字符 \ 的使用
- 可以用 \ 取消所有的元字符:[ \
- \d 匹配任何十進制數,它相當於類 [0-9]
- \D 匹配任何非數字字符,它相當於類[^0-9]
- \s 匹配任何空白字符,它相當於類[\t\n\r\f\v]
- \S 匹配任何非空白字符,它相當於類[^\t\n\r\f\v]
- \w 匹配任何字母數字字符,它相當於類[a-z A-Z 0-9]
- \W 匹配任何非字母數字字符,它相當於類[^a-z A-Z 0-9]
python中re模塊的使用
在Python中使用正則表達式,python提供了re模塊,包含所有正則表達式的功能。
- 由於python的字符串本身也用 \ 轉義,所以要註意,例如:
s = ‘ABC\-001‘ # Python的字符串
對應的正則表達式字符串變成:
‘ABC-001‘
因此,為了避免沖突,建議使用Python中的 r 前綴,就不用考慮轉義的問題了! - python中自帶了re模塊,可以通過
import re
來使用這個模塊,re模塊有許多方法,下圖給出了所有的方法,在ipython中可以查看具體每個方法的具體含義。
以下列出了一些常用的方法: - 1.re.findall(pattern,string,flags=0) :返回一個包含所有不重復匹配字符串的元組。
例1: -
- re.match(pattern, string, flags=0) : 從字符串開頭匹配正則表達式,如果匹配返回一個匹配的對象,如果沒有匹配返回None,常結合if判斷語句使用
例2:
- re.match(pattern, string, flags=0) : 從字符串開頭匹配正則表達式,如果匹配返回一個匹配的對象,如果沒有匹配返回None,常結合if判斷語句使用
python 中正則表達式的使用