python3進階之正則表達式之基本概念
阿新 • • 發佈:2018-04-25
py3 例如 它的 字符串 限制 則表達式 tab 結束 描述 。
1.概念
正則表達式是一種用來匹配字符串的強有力的武器。它的設計思想是用一種描述性的語言來給字符串定義一個規則,凡是符合規則的字符串,我們就認為它“匹配”了,否則,該字符串就是不合法的。
2.示例應用
-
‘00\d‘
可以匹配‘007‘
,但無法匹配‘00A‘
; -
‘\d\d\d‘
可以匹配‘010‘
; -
‘\w\w\d‘
可以匹配‘py3‘
; -
.
可以匹配任意字符,所以:‘py.‘
可以匹配‘pyc‘
、‘pyo‘
、‘py!‘
等等 - 要匹配變長的字符,在正則表達式中,用
*
表示任意個字符(包括0個),用+
表示至少一個字符,用?
表示0個或1個字符,用{n}
表示n個字符,用{n,m}
表示n-m個字符:
例1:\d{3}\s+\d{3,8}
-
\d{3}
表示匹配3個數字,例如‘010‘
; -
\s
可以匹配一個空格(也包括Tab等空白符),所以\s+
表示至少有一個空格,例如匹配‘ ‘
,‘ ‘
等; -
\d{3,8}
表示3-8個數字,例如‘1234567‘
。
要做更精確地匹配,可以用[]
表示範圍,比如:
-
[0-9a-zA-Z\_]
可以匹配一個數字、字母或者下劃線; -
[0-9a-zA-Z\_]+
可以匹配至少由一個數字、字母或者下劃線組成的字符串,比如‘a100‘
,‘0_Z‘
,‘Py3000‘
等等; -
[a-zA-Z\_][0-9a-zA-Z\_]*
可以匹配由字母或下劃線開頭,後接任意個由一個數字、字母或者下劃線組成的字符串,也就是Python合法的變量; -
[a-zA-Z\_][0-9a-zA-Z\_]{0, 19}
更精確地限制了變量的長度是1-20個字符(前面1個字符+後面最多19個字符)
A|B
可以匹配A或B,所以(P|p)ython
可以匹配‘Python‘
或者‘python‘
。
^
表示行的開頭,^\d
表示必須以數字開頭。
$
表示行的結束,\d$
表示必須以數字結束。
你可能註意到了,py
也可以匹配‘python‘
,但是加上^py$
就變成了整行匹配,就只能匹配‘py‘
了
python3進階之正則表達式之基本概念