python正则表达式

Posted Raymond。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python正则表达式相关的知识,希望对你有一定的参考价值。

1. 前言

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}"后面加上?,使贪婪模式变为非贪婪模式

以上是关于python正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

python 正则表达式

python成长之路第三篇_正则表达式

python成长之路第三篇_正则表达式

python 正则表达式 re模块基础

Python学习笔记之正则表达式

python基础学习(十三)