- 直接给出字符就是精确匹配。特殊字符首先需要转义如’-‘:
'\-'
'\d'
匹配一个数字,'\w'
匹配一个字母或者数字。
'123\d'
可以匹配'1231'
但是无法匹配'123a'
。
'\d\d\d'
可以匹配到'123'
'\w\w\w'
可以匹配到'py3'
'.'
表示任意一个字符,'py.'
可以表示py3
、py!
等'*'
表示任意长个字符,'+'
表示至少一个字符,'?'
表示0个或者1个字符,'{n}'
表示n个字符,'{n,m}'
表示n-m个字符'\s'
表示一个空格。
举例'\d{5}\s?\d{3,8}'
表示 五个数字+1-2个空格+3-8个数字。精确的用[]来表示,例如:
'[0-9a-zA-Z\-]'
可以匹配一个数字或字母或’-‘
'[0-9a-zA-Z\-]*'
表示由数字、字母或下划线组成的任意多个字符
'[a-zA-Z\_][0-9a-zA-Z\_]*'
由字母或下划线开头,后接任意多个数字字母下划线组成的字符串,也就是Python的合法变量。
'[a-zA-Z\_][0-9a-zA-Z\_]{0,19}'
由字母或下划线开头的,后接0-19个由数字字母下划线组成的字符串。
- 其他特殊:
A|B可以表示A或者B,即(P|p)ython
表示Python
或者python
o
^
表示行的开头,^\d
表示必须以数字开头
$
表示行的结尾,$\d
表示必须以数字结尾
使用Python的r
前缀,不必再考虑Python内置的转义了,如:
s = '123\\-001' #123\-001
s = r'123\-001' #123\-001