Python正则表达式的实训报告,菜鸟教程 python 正则表达式
re模块简介:
正则表达式是一种特殊的字符序列,可以帮助你轻松检查一个字符串是否匹配某种模式,re模块是python中实现正则性的模块。
正则表达式简介:
非打印字符:
非打印字符也可以是正则表达式的一部分。下表列出了代表非打印字符的转义序列:
角色描述
\cx
匹配由x表示的控制字符。
\f
匹配分页符。相当于\x0c和\cL。
\n
匹配换行符。相当于\x0a和\cJ。
\r
匹配回车。相当于\x0d和\cM
\s
匹配任何空白字符,包括空格、制表符、分页符等。
\S
匹配任何非空白字符。相当于[\ f \ n \ r \ t \ v]。
\t
匹配一个选项卡。相当于\x09和\cI。
\v
匹配垂直制表符。相当于\x0b和\cK。
预选赛
限定符用于指定正则表达式的给定组件必须出现多少次才能满足匹配。有*或者还是?或者{n}或者{n,}或者{n,m}。
正则表达式的限定符有:
角色描述
*
零次或多次匹配前一个子表达式。
匹配前一个子表达式一次或多次。
?
匹配前一个子表达式零次或一次。
{n}
n为非负整数
{n,}
n为非负整数
{n,m}
m和n都是非负整数,其中n=m.至少匹配n次,最多匹配m次
所谓特殊字符,就是一些有特殊含义的字符:
特殊字符描述
$
匹配字符串的结束位置。
( )
标记子表达式的开始和结束位置。
*
零次或多次匹配前一个子表达式。
匹配前一个子表达式一次或多次。
匹配除换行符以外的任何单个字符\n
[
标记括号表达式的开始。
?
匹配前一个子表达式零次或一次,或者指示非贪婪限定符。
\
将下一个字符标记为特殊字符、原义字符、向后引用或八进制转义字符。
^
输入匹配字符串的起始位置,除非在方括号表达式中使用。当这个符号用在方括号表达式中时,表示方括号表达式中的字符集不被接受。
{
标记限定符表达式的开始。若要匹配{,请使用\ {
表示在两个项目之间进行选择。若要匹配,请使用\ 。
预选赛
限定符用于指定正则表达式的给定组件必须出现多少次才能满足匹配。有*或者还是?或者{n}或者{n,}或者{n,m}。
角色描述
*
零次或多次匹配前一个子表达式。
匹配前一个子表达式一次或多次。
?
匹配前一个子表达式零次或一次。
{n}
n为非负整数
{n,}
n为非负整数
{n,m}
且m和n均为非负整数,其中n=m。
探测器
定位器使您能够将正则表达式固定在一行的开头或结尾。
角色描述
^
输入匹配字符串的起始位置。
$
输入匹配字符串结尾的位置。
\b
匹配一个单词边界,即单词和空格之间的位置。
\B
非单词边界匹配。
re模块的基本用途:
直接导入re。
重新匹配功能
Re.match尝试从字符串的开头匹配一个模式,如果不成功,match()返回none。
re.match(模式,字符串,标志=0)
参数描述
模式
匹配的正则表达式
线
要匹配的字符串。
旗帜
标志,用于控制正则表达式的匹配方式。
我们可以使用group(num)或groups()匹配对象函数来获得匹配表达式。
对象匹配方法描述
组(数量=0)
与group()的整个表达式匹配的字符串可以一次输入多个组号,并返回一个包含对应于这些组的值的元组。
组()
返回一个包含所有小组字符串的元组,从1到包含的小组号。
#示例代码
打印(回复match (\w , newdream.com )。group ()) #匹配开头的字符,\ w匹配字母数字字符,下划线匹配前一个子表达式一次或多次。
运行结果:
新梦想
研究方法
Re.search扫描整个字符串并返回第一个成功匹配的字符串。
重新搜索(模式,字符串,标志=0)
参数描述
模式
匹配的正则表达式
线
要匹配的字符串。
旗帜
标志,用于控制正则表达式的匹配方式。
#示例代码
打印(重新搜索(新(。)am , newdream new newd5555ream )。group())#new(。)am:匹配new的开头和am的结尾。newdream newd5555ream满足条件,只返回第一个。
#运行结果
新梦想
重新发现
在字符串中查找与正则表达式匹配的所有子字符串,并返回一个列表,如果没有找到匹配,则返回一个空列表。
参数:
String:要匹配的字符串。
Pos:可选参数,指定字符串的起始位置。默认值为0。
Endpos:可选参数,指定字符串的结束位置。默认值是字符串的值。
#示例代码
print(re.findall(new(。)AM ,新梦想NSSEWDSDS NEWD555REAM) #运行结果[dre , d5555re]
重新拆分
split方法根据可以匹配的子串拆分字符串,并将其返回到列表中。其使用形式如下:
re.split(模式,字符串[,最大拆分=0,标志=0])
参数描述
模式
匹配的正则表达式
线
要匹配的字符串。
旗帜
标志,用于控制正则表达式的匹配方式。
#示例代码
打印(回复split (\ d , New Dream 55 NSSEWDSDS 66 newd 5555 REAM )# \ d:匹配中有一个或多个数字。
#运行结果
[newdream , nssewdsds , newd , ream]
重新编译功能
编译函数用于编译正则表达式,生成正则表达式(模式)对象。
重新编译(模式[,标志])
参数:
模式:字符串形式的正则表达式。
Flags:可选,表示匹配模式,如忽略大小写、多行模式等。具体参数是:
关于。我忽略大小写
关于。l表示特殊字符集\w,\W,\b,\s,\S依赖于当前环境。
关于。多线模式
关于。s是。以及包括换行符(。不包括换行符)
关于。u表示特殊字符集\w,\W,\b,\d,\D,\s依赖于Unicode字符属性数据库。
关于。x为了可读性,忽略#后面的空格和注释。
刚学的拆分方法可以这样写:
#示例代码
pattern=re . pile(r \ d )print(pattern . split( new dream 55 nsssewds 66 newd 5555 ream )#运行结果
[newdream , nssewdsds , newd , ream]
同理,match、search、findall也可以这样写,方便以后扩展。今天的基础介绍结束了。以后再来分享更多高级用法吧!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。