码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2018-02-02 14:21:53      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:返回   pytho   单词   center   font   UI   god   pos   class   

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

"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]

 

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

>>> re.findall("\bon\b","only on air")
[]
>>> re.findall("\\bon\\b","only on air")
[on]
>>> re.findall(r"\bon\b","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 空白字符。等价于[\t\n\r\f\v]
\S 非空白字符。等价于[^\t\n\r\f\v]
\w 单词字符。等价于[a-zA-Z0-9]
\W 非单词字符。等价于[^a-zA-Z0-9]

 

正则表达式

标签:返回   pytho   单词   center   font   UI   god   pos   class   

原文地址:https://www.cnblogs.com/zhangzimu/p/8404540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!