引子
什么是正则表达式
正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
正则表达式的语法规则
下面是Python中正则表达式的一些匹配规则,
字符
预定义字符集(可以写在字符集[...]中)
数量词(用在字符或(...)之后)
边界匹配(不消耗待匹配字符串中的字符)
逻辑分组
特殊构造(不作为分组)
re模块
1.Python提供了两种不同的原始操作:match和search。先看一下match,match是从字符串的起点开始做匹配。
re.match()函数
group:返回返回被 RE 匹配的字符串(可以指定组号,如果组号不存在则返回indexError异常)
start:返回匹配开始的位置
end:返回匹配结束的位置
span:返回一个元组包含匹配 (开始,结束) 的位置
Python提供了两种不同的原始操作:match和search。接下来看一下search,search是从字符串的起点开始做匹配。
re.search()函数
match()函数与search()函数的区别
总结
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
2.Python正则表达式re findall()函数和re.finditer()函数
re.findall函数()(注重的是括号)
大家可以看的出来
第一个regex中是带有2个括号的,可以看到其输出是一个list中包含2个tuple
第二个regex中带有1个括号,其输出的内容就是括号匹配到的内容,而不是整个表达式所匹配到的结果。
第三个regex中不带有括号,其输出的内容就是整个表达式所匹配到的内容。
re.finditer()
总结
findall()返回的是括号所匹配到的结果,多个括号就会返回多个括号分别匹配到的结果,如果没有括号就返回整条语句所匹配到的结果;而re.findite返回的是一个MatchObject类型的iterator。
3.Python正则表达式re.sub()函数和re.subn()函数,主要功能实现正则的替换,前者不仅仅可以是字符串,也可以是函数;后者返回元组
re.sub()函数
re.sub用于替换字符串中的匹配项。将字符串中的空格替换成—
re.subn()函数
总结
re.sub()函数和re.subn()函数两者的不同之处在于subn返回替换的次数
接下来用我们学到的东西编写一个计算器。
好,我们的正则模块讲到这里也算是搞一段落了,想和小编交流的小编把自己的联系方式放到下面了
领取专属 10元无门槛券
私享最新 技术干货