Python瓦匠 —— 正则表达式(四)

一 字符分类

缩写字符分类:

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
原文地址:https://www.cnblogs.com/BeautifulSoup/p/8410474.html