對Python中正則表達式的理解,主要就是對符號的理解,本文即對Python中常用的正則表達式符號進行簡析。其主要的符號有:
.
默認匹配一個字符,不包含換行符,如果設置DOTALL則匹配換行符
^
匹配行首
$
匹配行尾
*
匹配0個或者多個重復
+
匹配一個或者多個重復
?
匹配一個或者零個重復
*?,+?,??
按照非貪婪模式匹配
{m},{m,n},{m,n}?
分別匹配m個重復,m至n個重復,m至n個重復按照非貪婪模式
/
轉義
[]
[abc],[a-z][^a-z]
|
或者匹配 'a|b'
(...)
匹配組
(?iLmsux)(?:...) (?P<name>...)>>> re.match('(?P<name>abc){2}','abcabc').groupdict(){'name': 'abc'}(?P=name)>>> re.match(r'(?P<name>abc)----(?P=name)','abc----abc').group()'abc----abc'(?#...) #后面的內容為注釋(?=...)
匹配的字符串后面的內容需要匹配
>>> re.match(r'phone(?=/d{3})','phone123').group()'phone'#(?!...)
匹配的字符后面內容不能匹配
>>> re.match(r'phone(?!/d{3})','phoneabc123').group()'phone'(?<=...)
匹配的字符串前面需要匹配
(?<!...) 匹配的字符前面不能匹配
(?(id/name)yes-pattern|no-pattern)
/number
/A 匹配字符串的開頭
/b 匹配單詞邊界
/B
/b的反義
/d 表示[0-9]
/D表示 [^0-9]
/s表示 [ /t/r/n/f/v]
/S 為非空白字符
/w等價于 [a-zA-Z0-9]
/W /w的反義
/Z 匹配字符串的結束
新聞熱點
疑難解答