美文网首页
Day027|正则表达式2

Day027|正则表达式2

作者: 龙渊的宝藏 | 来源:发表于2021-03-22 22:09 被阅读0次

    今天是Andy学Python的第27天哦! 

    大家好,我是Andy。

    今天继续学习正则表达式,内容有点多,以后还要多翻多看。

    01.

    创建正则表达式对象

    先用import re导入正则表达式模块;

    再用re.compile()函数创建一个Regex对象。

    import re

    p=re.compile(‘abc’)

    02.

    正则表达式函数总述

    2.1常用函数

    三个函数用于查找匹配match()、search()、findall(),一个函数compile()用于编译正则表达式,一个函数sub()用于替换,一个函数split()用于切分字符串。

    以上常用正则表达式函数的区别:

    compile():将字符串编译成正则表达式对象,供match()、search()和findall()函数使用;

    match():匹配字符串的开头,如果开头匹配不上,则返回None;

    search():扫描整个字符串,第一个匹配后立即返回,不再往后面匹配;

    findall():扫描整个字符串,以列表形式返回所有的匹配值;

    sub():扫描整个字符串,用于替换字符串的某些值;

    split():扫描整个字符串,按照指定分隔符切分字符串。 

    2.2正则表达式常用修饰符或标志

    re.I:Ignore匹配不区分大小写

    re.G:Global,查找所有的匹配项

    re.M:Multiline,多行匹配,影响^和$

    re.S:使圆点.匹配包括换行符\n在内的所有字符

    re.L:做本地化识别(locale-aware)匹配

    re.U:根据Unicode字符集解析字符,影响\w,\W,\b,\B

    re.X:赋予灵活的格式以便正则表达式易于理解。

    03.

    常用正则表达式函数

    3.1 re.match()

    从字符串的开头进行匹配,若不符合正则表达式,则认为不匹配,返回None。

    函数语法:

    re.match(pattern,string,flags=0)

    参数说明:

    pattern:正则表达式;

    string:代表要被匹配的字符串;

    flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

    获取匹配表达式的结果:

    可以使用group(num)或groups()匹配对象函数来获取匹配表达式。

    group(num=0):匹配的整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。

    groups():返回一个包含所有小组字符串的元组,从1到所含的小组号。

    start():返回match的开始位置。

    end():返回match的结束位置。

    span():返回(开始位置,结束位置)的元组对象。

    3.2 re.search()

    搜索整个字符串并返回第一个成功的匹配,成功则返回一个匹配对象,失败则返回None。

    函数语法:

    re.search(pattern,string,flags=0)

    参数说明:

    pattern:正则表达式;

    string:代表要被匹配的字符串;

    flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

    获取匹配表达式的结果:

    使用group(num)或groups()匹配对象函数来获取匹配表达式。group(num=0):匹配的整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。

    groups():返回一个包含所有小组字符串的元组,从1到所含的小组号。

    match()与search()的区别在于:

    re.match()方法只匹配字符串的开始,如果字符串的开始就不符合正则表达式,就匹配失败,返回None。

    re.search()方法匹配整个字符串,直到找到一个与正则表达式匹配。

    3.3 re.findall()

    在字符串中找到正则表达式所匹配的所有子串,并返回一个列表。如果没有找到匹配,则返回空列表。

    注意:findall()函数会直接返回所有匹配对象所组成的列表,返回的是列表,不像re.search()与re.match(),还需要调用group()函数。

    函数语法:

    findall(pattern,string,flags=0)

    参数说明:

    pattern:正则表达式;

    string:代表要被匹配的字符串;

    flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

    3.4 re.sub()

    sub()函数是Python正则表达式中,专门用于“替换”的函数。

    函数语法:

    sub(pattern,repl,string,count,flags)

    参数说明:

    pattern:正则表达式;

    repl:替换的字符串,也可为一个函数;

    string:代表要被匹配的字符串;

    count:表示最大替换次数,默认0表示替换所有的匹配;

    flags:修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

    3.5 re.split()

    使用正则表达式对字符串进行分割,返回分割得到的多个子串组成的列表。

    函数语法:

    re.split(pattern,string,[maxsplit],[flags])

    参数说明:

    pattern:正则表达式。

    string:表示要匹配的字符串

    maxsplit:可选参数,表示最大的拆分次数

    flags:可选参数,修饰符,也叫标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

    Copyright © 2021 Andy学Python

    转载事宜请留言 | 获得授权后方可转载

    本平台所使用的电子版教材、视频属相关权利人所有。因客观原因部分作品若存在不当使用的情况,请相关权利人随时与我们联系,以协商授权事宜。

    End

    不会Python,将成为人工智能时代的新“文盲”!

    欢迎加入零基础自学Python计划,未来100天,Andy会把自学Python学习笔记持续输出公众号、视频号,不定期更新,邀您观战、加油、评论,亦或围观Andy被打脸。

    人到中年,你一定要努力,但千万别着急。

    我是Andy,一个终身学习者。

    欢迎关注公众号与视频号:Andy学Python。

    相关文章

      网友评论

          本文标题:Day027|正则表达式2

          本文链接:https://www.haomeiwen.com/subject/chhfcltx.html