一 字符分类
缩写字符分类:
d 0-9的任何数字
D 除0-9的数字以外的任何字符
w 任何字母数字或下划线字符(可以认为是匹配“单词”字符)
W 除字母,数字和下划线以外的任何字符
s 空格,制表符或换行符(可以认为是匹配“空白”字符)
S 除空格,制表符和换行符以外的任何字符
[0 - 5] 表示匹配数字0到5。(定义自己的字符分类)
二 建立自己的字符分类
[ ] 可以用来建立自己的字符集,在[ ]里面的普通的正则表达式符号不会被解释。所以不需要加倒斜杠。
例如:[a-zA-Z0-9]表示匹配所有小写字母,大写字母,0-9的数字。
[ ] 通过在字符分类的左方括号后加上一个插入字符(^),就可以的到非字符类。非字符类将匹配不在这个字符类中所有字符。
例如:
>>> import re >>> schoolRegex = re.compile(r'[^abcd]') >>> schoolRegex.findall('asdfasdgc') ['s', 'f', 's', 'g']
匹配所有非abcd的字母。
三 插入字符和美元字符
可以在正则表达式的开始处使用插入符号(^),表明匹配必须发生在被查找文本的开始。
可以在正则表达式的末尾加上美元符号($),字符串必须以这个正则表达式的模式结束。^和$可以同时使用,表示整个字符串必须匹配该模式。
例如:
>>> begain = re.compile(r'Hello')#匹配以Hello开头的字符 >>> begain.search('Hello World') <_sre.SRE_Match object; span=(0, 5), match='Hello'> >>> print(begain.search('hello world')) None
例如:
>>> end = re.compile(r'World$') >>> end.search('Hello World') <_sre.SRE_Match object; span=(6, 11), match='World'> >>> end.search('Hello world') == None True
正则表达式r'^d+$' 表示匹配从开始到结束都是数字的字符串。
例如:
import re whole = re.compile(r'^d+$')#匹配以都是数字的字符串。 >>> whole.search('1234135345') <_sre.SRE_Match object; span=(0, 10), match='1234135345'> >>> whole.search('13hi128314') == None True