Python入门基础篇(五)字符串的正则表达式re模块,全面解析!!!

    科技2022-07-13  133

    文章目录

    前言一.匹配字符串的方法1.使用match()方法进行匹配2.使用search()方法进行匹配3.使用findall方法进行匹配 二.替换字符串三.使用正则表达式分割字符串


    前言

    Python中提供了re模块用于正则表达式的操作,在实现时可以用re模块提供的多种方法对字符串进行处理,re模块在使用时,需要先应用import语句导入,即

    import re

    不知道其他人对于开始学习正则表达式是什么感觉,反正我是迷糊了很久。下面我们就来仔细讲讲re模块提供的那些方法吧


    一.匹配字符串的方法

    匹配字符串可以使用re模块提供的match()、search()和findall()等方法

    1.使用match()方法进行匹配

    match()方法用于从字符串的开始处进行匹配,如果在起始位置匹配成功则返回Match对象,否则返回None,语法格式如下:

    re.match(pattern,string,[flags])

    pattern:表示模式字符串,由要匹配的正则表达式转换而来 string:表示要匹配的字符串 flags:可选参数,表示标志位,用于控制匹配方式

    例如,匹配字符串是否以“hg”开头,不区分大小写: 实现代码: 运行结果:

    解释一下运行结果吧,从上面的结果来看,字符串string是以“hg_”开头(不区分大小写),所以返回一个Match对象,而字符串str不是以“hg_”开头,当用match()方法从字符串起始位置开始匹配时,遇见不符合条件的字母便不会再匹配了,所以返回“None” Match对象中包含了匹配值的位置(使用start()方法获取)和匹配数据(使用end()方法获取),通过span()方法可以返回匹配位置的元组,通过string属性可以获取要匹配的字符串。

    例: 运行结果:

    2.使用search()方法进行匹配

    search()方法用于在整个字符串中搜索第一个匹配的值,如果匹配成功,则返回Match对象,否则返回 None 语法格式如下:

    re.search(pattern,string,[flags])

    例如,搜索一个以“hg”开头的字符串,不分大小写 实现代码: 运行结果: 从运行结果可以看出来search()方法搜索字符串时,并不一定只能搜索字符串的起始位置,其他位置也可以进行搜索

    3.使用findall方法进行匹配

    findall()方法用于在整个字符串中搜索所有符合正则表达式的字符串,并以列表的形式返回,如果匹配成功,则返回含有匹配结构的列表,否则返回空列表 语法格式如下:

    re.findall(pattern,string,[flags])

    例如,搜索一个以“hg”开头的字符串,不分大小写 实现代码: 运行结果:

    二.替换字符串

    可以用sub()方法用于实现字符串的替换,语法格式如下:

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

    pattern:表示模式字符串,由要匹配的正则表达式转换而来 repl:表示替换的字符串 string:表示要匹配的字符串 count:可选参数,表示模式匹配后替换的最大次数,默认值为0,表示替换所有的匹配 flags:可选参数,表示标志位,用于控制匹配方式

    例如,隐藏个人信息: 实现代码: 运行结果:

    三.使用正则表达式分割字符串

    split()方法用于实现根据正则表达式分割字符串并以列表的形式返回,语法格式如下:

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

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

    例如,从给定的URL地址中提取出请求地址和各个参数 实现代码: 运行结果:


    希望这些对大家有所帮助,自我感觉字符串的正则表达式对于初学者还是挺难的,不过好好加油吧,越是艰难越向前つ﹏⊂

    加油加油
    Processed: 0.009, SQL: 8