前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python正则表达式教程_python正则表达式匹配中文

Python正则表达式教程_python正则表达式匹配中文

作者头像
全栈程序员站长
发布2022-11-09 17:29:55
1.4K0
发布2022-11-09 17:29:55
举报

🙊今天我们来学习python的正则表达式的部分,先说下为什么要学习这一部分呢,当然是因为正则表达式处理文本类型的数据实在是太方便了。为以后进入nlp领域打打基础!

先给大家推荐一个网站: 用于正则表达式验证. 大致就长这个样子。

在这里插入图片描述
在这里插入图片描述

这里写目录标题

1.基础知识

  • 普通字符:普通字符的含义就是字节匹配他们。
  • 特殊字符:它们出现在正则表达式中,不是直接匹配他们,而是表达一些特殊的含义。

.表示匹配除了换行符之外的任何单个字符

例如匹配‘’.公司‘’(匹配三个字符)

结果如下:

在这里插入图片描述
在这里插入图片描述

*表示匹配前面的子表达式任意次,包括0次

例如:匹配,.*表示匹配,以及后面的所有字符

在这里插入图片描述
在这里插入图片描述

当然前面可以跟普通字符 “好” 匹配 “好好好…”

+表示匹配前面的子表达式一次或者多次,不包括0次

区别就是不包括0次。 +号的(不能0次)

在这里插入图片描述
在这里插入图片描述

*号的(可以0次)

在这里插入图片描述
在这里插入图片描述

{ }匹配前面的字符指定的次数

例如:表达式”油{2,4}”表示匹配油字最少2次最多4次

在这里插入图片描述
在这里插入图片描述

2.贪婪模式和非贪婪模式

不知道大家看懂了下面的这张图吗? 我们只想一个一个匹配

标签,但是它却帮我吗全部都匹配上了,这是因为它只看见了第一个 “< ”和左后一个“>”中间部分全部看成了任意字符,这就是贪婪模式,它会最大限度地匹配字符。

在这里插入图片描述
在这里插入图片描述

要想变成非贪婪模式,需要在‘+’,”*“后面加一个‘?’ 这样子就是匹配4个字符。

在这里插入图片描述
在这里插入图片描述

3.反斜杠的用途

反斜杠 \ 在正则表达式中多种用途,比如转义

例如:我们需要寻找.之前的所有元素 需要使用 . ∗ / . .*/. .∗/.斜杠是为了告诉程序后面一个字符代表普通字符.的含义

在这里插入图片描述
在这里插入图片描述

反斜杠可以和一些字符组合表示一些特殊字符

在这里插入图片描述
在这里插入图片描述

4.中括号的用法

中括号可以用来表示条件或[0123] 或者[0-3]代表这个字符可以是0,1,2,3 也可以存放字符[黄红绿蓝]、[a-z]这一类

例如:匹配包含‘’是[黄红绿蓝]色‘’的字符

在这里插入图片描述
在这里插入图片描述

需要说明一些元字符在[]中就是失去了自己的意义,变成普通字符了 例如. + *不需要转义。‘

例如查找“.是”的字符

在这里插入图片描述
在这里插入图片描述

如果在[]中使用^字符,则表示非的概念

例如:匹配非数字字符

在这里插入图片描述
在这里插入图片描述

5.匹配启始和结束位置

^表示匹配文本启始的位置但在不同模式下效果不一样 正则表表达式主要有2种模式:单行模式和多行模式 单行模式:是指把整个文本看作是一组数据,只匹配所有数据的开头 多行模式:是指把每一行看成是一组数据,匹配每一行的开始

例如:我们使用单行模式匹配,只匹配了第一行的001

在这里插入图片描述
在这里插入图片描述

例如:我们使用多行匹配,匹配到了001、002、003

在这里插入图片描述
在这里插入图片描述

问题来了,在python中如何制定是是单行还是多行模式呢? 在compile里面增加参数re.M或者re.MULTILINE都行。

在这里插入图片描述
在这里插入图片描述

结果如下:

在这里插入图片描述
在这里插入图片描述

$表示文件的结尾,用法和^类似,也分多行模式和单行模式

单行模式

在这里插入图片描述
在这里插入图片描述

多行模式

在这里插入图片描述
在这里插入图片描述

6.括号的用法—组选择

组选择:是指从正则表达式匹配的结果中再选择出我们所需要的字符,例如:我们需要匹配逗号前面的字符,我们可能会写“.*,”可是这样匹配出来的字符中含有逗号,可我们不想要这个逗号,这时就需要用组选择。

在这里插入图片描述
在这里插入图片描述

看一看python的写法

在这里插入图片描述
在这里插入图片描述

如果遇见多个分组,那么每一行的数据就会变成元组,你可以通过元组下标来取出对应的字符。

在这里插入图片描述
在这里插入图片描述

来一个小练习:给你一组数据,请从中选出人名和电话号码

python实现如下:

在这里插入图片描述
在这里插入图片描述

7.正则表达式切割字符

字符串对象的split()方法只适用于非常简单的字符串分割情形,当你需要更加灵活的切割字符的时候,就需要用正则表达式了 例如:

这应该如何切割呢? 我们可以利用re.split用正则表达式的符号来制定分隔符。

在这里插入图片描述
在这里插入图片描述

总结

这一这章节主要是进行正则表达式的基础学习,当作一个小小的入门教程还是很不错的,日后碰见复杂的用法会继续添加。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186145.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月4日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这里写目录标题
  • 1.基础知识
  • 2.贪婪模式和非贪婪模式
  • 3.反斜杠的用途
  • 4.中括号的用法
  • 5.匹配启始和结束位置
  • 6.括号的用法—组选择
  • 7.正则表达式切割字符
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档