美文网首页
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

    今天是Andy学Python的第27天哦! 大家好,我是Andy。 今天继续学习正则表达式,内容有点多,以后还要多...

  • 自律给我自由—Day027

    【叶子姑娘的自律100天挑战 Day27】 2019.02.13 Day027 【早起】第33天 【阅读】《不惧前...

  • Day027

    Pink Floyd is a British rock band founded in 1965. Style ...

  • Day027

    I'm sorry I couldn't attend yesterday' English class.I wi...

  • Day027

    我昨天打了一天的毛线,好累啊!!!但是看到男神说他要坐很久的轻轨去公司,真的好心疼他哈哈哈哈 我要努力打毛线了!!!

  • Python正则表达式常用梳理

    目录 [1、 什么是正则表达式. [2、 正则表达式语法结构. [2.1. 入门案例:了解正则表达式. [2....

  • 正则表达式

    1 正则表达式 2 元字符介绍 3 BRE 和 ERE 1 BRE(基础正则表达式) 2 ERE (扩展正则表达式...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则IP和端口

    1:ip的正则表达式: 2:端口的正则表达式:

  • 正则表达式

    菜鸟教程正则表达式教程RE2正则表达式(golang执行的是RE2标准的正则表达式)go语言中单行模式的用法可以查...

网友评论

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

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