您的位置:首页 > 编程语言 > Python开发

python成长之路第三篇(2)_正则表达式

2016-02-29 18:09 627 查看

打个广告欢迎加入linux,python资源分享群群号:478616847

目录:


1、什么是正则表达式,python中得正则简介

2、re模块的内容

3、小练习


一、什么是正则表达式(re)


正则表达式相信很多人都熟悉了,在python中正则表达式的支持是通过re(regularexpression)模块,正则表达式是可以匹配文本片段的模式,简单的是正则表达式就是普通的字符串,可以处理字符串。也就是说正则表达式的存在就是来处理文本字符串的

下面来熟悉下正则中的几个概念:

1、通配符

通配符是一种特殊语句可以使用它来代替一个或多个真正的字符比如‘.’点,他就可以代替任意的字符除了换行符,.python就可以等于xpython、+python等等

2、字符集

既然通配符”.”可以表示一个任意的字符,那么字符集就可以表示一个字符的范围例如[a-z]就可以表示a-z的任意一个字符,还可以[a-zA-Z0-9]来表示大小写字母和数字,我们还可以将它来转义[^a]就是除了a的意思

注意的是这里的转意符不是单个\而是双\\

为什么使用两个反斜线?

这是为了通过解释器进行转义,需要进行两个级别的转义:1.通过解释器的转义;2.通过re模块转义。如果不想使用两个反斜线,可以考虑使用原始字符串,如:r'python\.org'。

3、选择符

为什么存在选择符呢?主要原因是假如我们想匹配两个字符串如“aaa”,“bbb”,我们就需要使用管道符(|)因此在匹配的时候就可以写成‘aaa|bbb’,当有的时候不需要匹配这两的时候假如只需要匹配字符串“aaa”或者“bbb”就可以写成“p(aaa|bbb)”

4、表示个数(重复模式)

表示个数顾名思义就是来表示这个字符有多少个的意思主要模式(pattern)有:

(pattern)*:表示这个模式可以重复0次或者多次

(pattern)+:表示允许这个模式出现一次或者多次

(pattern){m,n}:表示允许这个模式重复m到n次

(pattern){n}:表示重复n次

(pattern){n,}:表示重复n或者更多次,最低重复n次

5、表示开头和结尾

当我们要匹配以什么什么开头或者以什么什么结尾是表示开头我们可以使用‘^a’表示以a开头,’$a‘表示以a结尾


二、re模块的内容


既然我们知道re是个模块那么他肯定有很多功能函数来供我们使用下面我们来看一看

1compile(pattern[,flags])根据包含正则表达式的字符串创建模式对象

2search(pattern,string[,flags])在字符串中寻找模式

3match(pattern,string[,flags])在字符串的开始处匹配模式

4split(pattern,string[,maxsplit=0])根据模式的匹配项来分割字符串

5findall(pattern,string)列出字符串中模式的所有匹配项

6sub(pat,repl,string[,count=0])将字符串中所有pat的匹配项用repl替换

7escape(string)将字符串中所有特殊正则表达式字符转义

这个compile我们最后来讲

首先我们来看看函数的语法:

re.match(pattern,string,flags=0)

pattern:匹配的正则表达式

string:要匹配的字符串。

flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

匹配模式:

使用方法re.IGNORECASE,或者re.I

importre
str_in='ThenameisxiaoyanThemoneyIhave(5+5),6-1'
new_str_in=re.findall("\(*\d+[\+]+\d+\)*",str_in)#匹配出括号中的内容
value=new_str_in[0].strip('(,)')#取出括号
n1,n2=value.split('+')#以+作为分割付
new_value=str(int(n1)+int(n2))#进行计算
aaa=str_in.replace(new_str_in[0],new_value)#进行替换
print(aaa)


练习3


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐
章节导航