6

python正则表达式

 2 years ago
source link: https://blog.csdn.net/weixin_42384444/article/details/119151034
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1.1 概念

  • 正则表达式,Regular Expression
  • 正则表达式使用单个字符串来描述、匹配(系列匹配)某一个句法规则的字符串中

1.2 作用:

  • 检索,替换那些匹配某个模式的文本
  • 对字符串格式进行校验,比如网页的注册表单,使用正则表达式会非常方便;比如输入的QQ号,输入的E-mail地址和手机号等。

2.案例–判断手机号

  • 不用正则代码
    在这里插入图片描述
    上述可以用正则表达式,一句话搞定,后续讲解。
  • 正则表达式书写
    在这里插入图片描述

3. 正则表达式规则

3.0 原始字符串与转义字符

  • python中字符串前面加上r表示该字符串为原生字符串
  • 正则表达式使用"“表示转义字符;因此,若在待匹配的字符串中含有”",需要在待匹配的字符串中,在"\“前面加”\“表示对"“的转义;然而,在正则表达式中需要四个”":前两个表示表示对待匹配字符串中的第一个”\“做转义,后两个表示对待匹配字符串中的第二个”\“做转义。
  • 为了防止出错,建议正则表达式中使用原生字符串。
    例如下面的正则匹配式子:
re.match("c:\\\\", "c:\\a\\b\\c")

上述结果会输出c:\
采用原生字符串:

re.match(r"c:\\", "c:\\a\\b\\c")

3.1 表示字符

3.1.1 规则

在这里插入图片描述

3.1.2 实例

在这里插入图片描述

3.2 表示数量

3.2.1 规则

在4.1中的字符后面加上数量即可以匹配大量字符串
在这里插入图片描述

3.2.2 实例

在这里插入图片描述

3.3 表示边界

3.3.1 规则

在这里插入图片描述
\b表示空格等

3.3.2 实例

在这里插入图片描述

3.4 匹配分组

分组:用笑小括号括上叫做分组。

3.4.1 规则

在这里插入图片描述
|表示或

3.4.2 案例

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

4. python中的正则

4.1 re模块

正则表示模块。

4.2 re使用

4.2.1 导包

import re

4.3 常用方法

4.3.1 match()方法

用来进行正则匹配检查
若匹配正则,返回匹配对象
若不匹配正则,返回None(非空字符串"")

re.match(正则表达式,要匹配的字符串)

4.3.2 search()方法

搜索符合特征的字符串

ret = re.rearch(r"\d+", "阅读次数为9999")
ret.group()

4.3.3 findall

找出所有符合特征的字符串,返回列表

ret = re.findall(r"\d+", "python = 9999, c = 7800, c++ = 12334")

4.3.4 sub

将匹配到的数据进行替换,返回字符串

ret = re.sub(r"\d+", "998", "python = 923")

4.3.5 split

根据匹配进行切割字符串,并返回一个列表

ret = re.split(r":| ", "info:xiaozhang 33 shandong")

4.4 python的贪婪模式和非贪婪模式

  • python中正则表达式数量词默认是贪婪的,,总是尝试尽可能多的匹配
  • 非贪婪模式即尽可能少的去匹配。
  • 在"*", “?”, “+”, "{m, n}"后面加上?,使贪婪模式变为非贪婪模式
    在这里插入图片描述

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK