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

 

posted @ 2018-02-03 19:07  未来分析师  阅读(207)  评论(0编辑  收藏  举报