正则表达式

 正则表达式是由普通字符及特殊字符(称为元字符)组成的文字模式,元字符(包含特殊含义,如果要作为普通字符使用,则需要转义)包括:. ^ $ + ? { } [ ] | ( ) 。例如:

"Go"   # 匹配字符串"Good Good"中的"Go"
"G.d"  #匹配字符串"Good Good"中的"God",  . 为元字符,匹配除行终止符外的任何字符
"d $"   #匹配字符串"Good Good"中的最后一个"d",$ 为元字符,匹配结尾   

python的re模块实现了正则表达式处理的功能。导入re模块后,使用findall、search函数可以进行匹配:

re.findall(pattern,string): 返回匹配结果列表
re.search(pattern,string):如果匹配,返回Match对象,否则返回None。

例如:

>>> import re   #导入re模块
>>> re.findall('d','godness')
['d']

正则表达式中包含你特殊字符,例如: 表示单词边界;而字符串中的转义字符  表示退格字符。因此在正则表达式中,这些与标准转义字符重复的特殊符号必须使用两个反斜线字符('\'),或者使用原始字符串(r" ") 或 (r' ')。

>>> re.findall("on","only on air")
[]
>>> re.findall("\bon\b","only on air")
['on']
>>> re.findall(r"on","only on air")
['on']

字符类是由一对方括号[ ]括起来的字符集合,正则表达式引擎匹配字符集中的任意一个字符。字符类的定义方式包括以下几种。

[xyz]:枚举字符集,匹配括号中的任意字符。例如,“t[aeio]n”匹配“tan”、"ten"、"tin"、"ton"。

[^xyz]:否定枚举字符集,匹配不在此括号中的任意字符。

[a-z]:指定范围的字符,匹配指定范围的任意匹配。

[^a-z]:指定范围以外的字符,匹配指定范围以外的任意字符。

例如:
>>> re.findall("fo[xr]","the quick brown fox jumps for food")
['fox', 'for']

 常用的预定义字符类

预定义字符 说明
. 除行终止符外的任何字符
d 数字。等价于[0-9]
D 非数字。等价于[^0-9]
s 空白字符。等价于[ fv]
S 非空白字符。等价于[^ fv]
w 单词字符。等价于[a-zA-Z0-9]
W 非单词字符。等价于[^a-zA-Z0-9]
原文地址:https://www.cnblogs.com/zhangzimu/p/8404540.html