python3中的正则表达式

python3中的正则表达式

一、什么是正则?

正则就是一套规则,或者语法。

二、正则的作用?

正则就是匹配 或者 查找某一些规则的字符串数据。

三、 常用的场景?

  1. 验证:判断输入的邮箱,手机号是否合法等。
  2. 获取某一段数据,可以使用正则获取网页的照片。

四、 re模块操作。

在Python中需要通过正则表达式对 字符串 进行匹配的时候,可以使用一个模块,名字为re

re模块的使用过程

    #coding=utf-8

    # 导入re模块
    import re

    # 使用match方法进行匹配操作
    result = re.match(正则表达式,要匹配的字符串)

    # 如果上一步匹配到数据的话,可以使用group方法来提取数据
    result.group()

五、匹配单个字符。

这里写图片描述

六、 匹配多个字符。

这里写图片描述

六、 开头和结尾。

这里写图片描述
小结:这个常用在以什么开头或者以什么结尾的需求情况下使用比较多!

实例:
这里写图片描述

2.除了指定字符以外都匹配
这里写图片描述

七、匹配分组

匹配内容相关正则表达式:
这里写图片描述

七、re模块的高级用法

不常用 search:匹配到一个字符
findall:查找多个字符。
sub:替换数据。
split:根据多个标识符进行分割数据。
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

八、python中的贪婪与非贪婪

在python中默认的是贪婪模式!
贪婪:总是尝试匹配尽可能多的字符;
非贪婪:总是尝试匹配尽可能少的字符。

在”*”,”?”,”+”,”{m,n}”后面加上?,使贪婪变成非贪婪。

实例:

>>> s="This is a number 234-235-22-423"
>>> r=re.match(".+(\d+-\d+-\d+-\d+)",s)
>>> r.group(1)
'4-235-22-423'
>>> r=re.match(".+?(\d+-\d+-\d+-\d+)",s)
>>> r.group(1)
'234-235-22-423'
>>>

说明:
—–1、正则表达式模式中使用到通配字,那它在从左到右的顺序求值时,会尽量“抓取”满足匹配最长字符串,
—-2、在我们上面的例子里面,“.+”会从字符串的启始处抓取满足模式的最长字符,其中包括我们想得到的第一个整型字段的中的大部分,“\d+”只需一位字符就可以匹配,所以它匹配了数字“4”,而“.+”则匹配了从字符串起始到这个第一位数字4之前的所有字符。

九、r的作用

>>> import re
>>> mm = "c:\\a\\b\\c"
>>> mm
'c:\\a\\b\\c'

>>> ret = re.match("c:\\\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a

说明:
Python中字符串前面加上 r 表示原生字符串,数据里面的反斜杠不需要进行转义,针对的只是反斜杠

Python里的原生字符串很好地解决了这个问题,有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。

建议: 如果使用使用正则表达式匹配数据可以都加上r,要注意r针对的只是反斜杠起作用,不需要对其进行转义

猜你喜欢

转载自blog.csdn.net/Python_Number/article/details/82378238