首页 / 正则 / Python——正则表达式(学习总结)
Python——正则表达式(学习总结)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python——正则表达式(学习总结),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4005字,纯文字阅读大概需要6分钟。
内容图文
![Python——正则表达式(学习总结)](/upload/InfoBanner/zyjiaocheng/742/cb0b10f7f08d4f00bab2d9bcd9bf9a2b.jpg)
**
python——正则表达式
**
引言:正则表达式可以使得我们在编写代码中的程序变得更加简洁。
本文中先介绍正则表达式基本模式,再介绍更丰富的功能,
最后结合简单的项目加以巩固。
1.正则表达式:
“正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。”——百度百科
正则表达式简称为Regex,是文本模式的描述方法。
2.创建正则表达式:
python中所有的正则表达式的函数都是在re模块中,所以我们需要先导入re模块
然后创建一个Regex的对象,其中Regex对象的函数为re.compile(),向re.compile()传入一个字符串值,表示正则表达式,它将返回Regex对象。
(在此例中\d为需要匹配一个数字字符)
现在shuzi对象包含了一个Regex对象了。
3.匹配Regex对象:
用search()方法来查找Regex对象所传入的字符,用于寻找该正则表达式的所有匹配。如果字符串中没有找到该正则表达式中的所有模式,那么search()方法将返回一个None。如果找到了,那么search()方法将会返回一个Match对象
(在March对象中还存在一个group()方法,我们将用通用变量mo将March对象存入其中)
我们可以看一下这几条代码可以打印出的结果:
由上图我们发现只匹配了一个数字“1”,因为\d只能匹配一次,如果想匹配上所有最简单的办法就是’\d\d\d\d’,而在接下来所讲解的知识中你可以结合运用其他方式来解决这个问题。
4.利用括号分组:
利用括号可以在正则表达式中创建分组,’(12)(44)'然后使用group()匹配对象方法,从一个分组中获取匹配文本。
正则表达式字符串中的第一个括号为第1组,第二个括号为第2组,以此类推。如果是group(0)和group(),将返回整个匹配文本。
注:括号在正则表达式中有特殊的含义,但是如果你需要在文本中匹配括号,需要用到转义符倒斜杠进行转义。
5.用管道匹配多各分组
字符“|”为管道符,希望匹配正则表达式中的一个时,就可以使用它。例如正则表达式r’happy|joy’中将会匹配happy或者joy。如果happy和joy都出现在要查找的文本中,那么第一次出现在匹配文本中的将作为Match对象返回。
如果想要匹配任一个,可以通过分组括号和调用方法mo.group(),指定集中可选模式,让正则表达式区匹配。
6.正则表达式中的星号‘*’,加号‘+’,花括号‘{}’和问号‘?’
1)星号‘*’:在星号之前的分组,意味着需要匹配零次或者多次,可在文本中出现任意次。不要求分组出现在匹配的字符中。
2)加号‘+’:加号意味着匹配一次或者多次,且加号前面的分组至少在匹配的文本中出现一次。
3)花括号‘{ }’:花括号可以用来匹配特定的次数,即在正则表达式中的分组后面,加上花括号包围的数字。
{n}—匹配n次前面的分组
{n,}—至少匹配n词前面的分组
{,m}—最多匹配m词前面的分组(包含零次)
{n,m}—匹配至少n次、最多m次前面的分组
4)问号‘?’:问号在正则表达式中有两张用法:
第一:表明它前面的分组是可选的,匹配零次到多次;
第二:用来声明是非贪心匹配,在python中正则表达式默认是‘贪心’的
即尽可能的匹配最长的字符串,‘非贪心’即在花括号后面加上一
个问号 r’(let){2,4}?’ 这样的形式。
7.插入字符‘^’和美元字符‘$’
1)插入字符‘^’:在开始出使用插入字符,表明匹配必须发生在被查找的文本开始处。
2)美元字符‘$’:可以在正则表达式的末尾加上美元符号,表示该字符串必须以这个正则表达式的模式结束。
3)插入字符和美元字符可以同时使用,如果使用了这两个字符那么真个字符串必须匹配正则表达式。
8.findall()方法
Regex对象还有一个findall()方法,findall()方法将返回一个字符串,包含被查找字符串中的所有匹配。findall()不是返回一个Match对象而是返回一个字符串列表,列表中的每个字符串都是一段被查找的文本。
如果正则把表达式中有分组,则返回元组的列表
9.字符分类和建立字符分类
1)\d、\w和\s:分别匹配数字,单词和空格
2)\D、\W和\S:分别匹配除了数字、单词和空格以外的所有字符
3)用方括号建立自定义的字符分类,可以使用短横表示字母或数字的范围。
注:在方括号内,普通的正则表达式符号不会被解释,
即不需要在前面加转意符号。
10.通配字符‘.’和点-星’.*'
1)通配字符‘.’:它除了匹配换行之外的多有字符
2)点-星‘.*’:表示匹配任意文本
11.re.IGNORECASE或re.I
re.IGNORECASE或re.I:不关心大小写的匹配
即向re.compile()传入re.IGNORECASE或re.I,作为第二个参数。
12.sub()方法
sub()方法用于替换
Regex对象的sub()方法需要传入两个参数:第一个参数是一个字符串,用于取代发现的匹配;第二个参数是一个字符串,是用正则表达式匹配的内容。
13.re.VERBOSE
忽略正则表达式字符串中的空白符和注释(文本模式)
注:三重引号’’’ 创建了一个多行字符串,这样就可以将正则表达式放在多行中
14.项目-电话号码和E-mail邮件提取程序(读python编程快速上手得)
内容总结
以上是互联网集市为您收集整理的Python——正则表达式(学习总结)全部内容,希望文章能够帮你解决Python——正则表达式(学习总结)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。