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

Python正则表达式教程_python正则表达式匹配中文????今天我们来学习python的正则表达式的部分,先说下为什么要学习这一部分呢,当然是因为正则表达式处理文本类型的数据实在是太方便了。为以后进入nlp领域打打基础!先给大家推荐一个网站:用于正则表达式验证.大致就长这个样子。这里写目录标题1.基础知识2.贪婪模式和非贪婪模式3.反斜杠的用途4.中括号的用法5.匹配启始和结束位置6.括号的用法—组选择7.正则表达式切割字符总结1.基础知识普通字符:普通字符的含义就是字节匹配他们。特殊字符:它们出现在正则表达式中,不是直接匹配他们,而是

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

先给大家推荐一个网站: 用于正则表达式验证.
大致就长这个样子。
在这里插入图片描述

1.基础知识

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

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

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

#这里展示一下python怎么使用正则表达式
import re #正则表达式的库
content=''' 苹果是红色 香蕉是黄色 叶子是绿色 天空是蓝色 '''
#将表达式转化为pattern对象,就可以调用后面的find之类的方法
p=re.compile(r'.色')
for i in p.findall(content):
    print(i)

结果如下:
在这里插入图片描述

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

例如:匹配,.*表示匹配,以及后面的所有字符
在这里插入图片描述

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

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

区别就是不包括0次。
+号的(不能0次)
在这里插入图片描述
*号的(可以0次)
在这里插入图片描述

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

例如:表达式”油{2,4}”表示匹配油字最少2次最多4次
在这里插入图片描述

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

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

<head><title>

标签,但是它却帮我吗全部都匹配上了,这是因为它只看见了第一个 “< ”和左后一个“>”中间部分全部看成了任意字符,这就是贪婪模式,它会最大限度地匹配字符。
在这里插入图片描述
要想变成非贪婪模式,需要在‘+’,”*“后面加一个‘?’ 这样子就是匹配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的写法
在这里插入图片描述
如果遇见多个分组,那么每一行的数据就会变成元组,你可以通过元组下标来取出对应的字符。
在这里插入图片描述
来一个小练习:给你一组数据,请从中选出人名和电话号码

苹果,电话123131
香蕉,电话234241
叶子,电话245363
天空,电话124234

python实现如下:
在这里插入图片描述

7.正则表达式切割字符

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

#我们这里有一组数据
names=‘关羽;张飞,马超,老夫子,李元芳 狄仁杰’

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

总结

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

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

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

(0)
上一篇 2022年10月4日 上午8:46
下一篇 2022年10月4日 上午8:46


相关推荐

  • 如何选择黑盒测试工具

    如何选择黑盒测试工具如何选择黑盒测试工具关于黑盒 个人认为还是首先考虑是私用还是商用 私用的话去找一些开源的工具就好 像 OWASPZAP Arachni Wfuzz Nikto 这几个都是免费开源的 商用的话就比较特殊 需要考量的因素比较多 当然也比较贵 除了规则库 准确率 误报率 效率 稳定性以外 合规也是非常重要的因素 当了多年甲方运维狗已经被合规搞怕了 哈哈 商用给你推荐的话 当然是曾以 Watc

    2026年3月26日
    1
  • linux 重启redis 命令

    linux 重启redis 命令redis 已经加入到 etc 下也就是服务器启动 redis 也启动 突然发现连不上 redis 所以上来看看查看 redis 状态 systemctlsta redis service redis serverLoaded loaded usr lib systemd system redis service disabled vendorpreset disabled Active inactive dead 发现没启动启动后再看看状态 systemctl

    2026年3月17日
    2
  • Django流程_菜鸟裹裹收费标准

    Django流程_菜鸟裹裹收费标准Django教程一、Django安装1、Django版本对应的Python版本:2、Django下载地址:3、安装(无需下载)4、验证安装cmd进入python获取版本信息一、Django安装1、Django版本对应的Python版本:2、Django下载地址:https://www.djangoproject.com/download/3、安装(无需下载)打开cm…

    2025年10月9日
    7
  • git diff提示filemode发生改变(old mode 100644、new mode 10075)[通俗易懂]

    git diff提示filemode发生改变(old mode 100644、new mode 10075)

    2022年2月12日
    45
  • 卷积神经网络CNN的反向传播原理

    卷积神经网络CNN的反向传播原理  上一篇博客《详解神经网络的前向传播和反向传播》推导了普通神经网络(多层感知器)的反向传播过程,这篇博客则讨论一下卷积神经网络中反向传播的不同之处。先简单回顾一下普通神经网络中反向传播的四个核心公式:…

    2022年5月7日
    80
  • c语言图书馆管理系统课程设计报告_图书管理系统课程设计代码

    c语言图书馆管理系统课程设计报告_图书管理系统课程设计代码C语言课程设计报告第第PAGE1页《程序设计语言-C》课程设计报告题目:图书管理系统班级:学号:姓名:2016年5月12日目录程序总体功能新增功能函数调用关系主要算法流程图排序算法流程图插入算法流程图过程难点及解决方法附录:源程序一:程序总体功能本图书管理系统可以实现图书管理的基本功能,包括图书信息的录入、输出、排序、删除、查找及批量导入/导出等。图书属性信息包括书号、书名、第一作者、…

    2022年10月11日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号