Python的正则,python 菜鸟教程 正则
1.重新匹配函数re。match尝试从字符串的开头匹配一个模式,如果起始位置匹配不成功,match()返回none。
函数语法:re。匹配(模式,字符串,标志=0)标志是标志位。
修饰语
形容
关于。我
使匹配不区分大小写。
关于。l
进行本地化感知匹配。
关于。m
多行匹配,影响和美元
关于。s
制造。匹配所有字符,包括换行符。
关于。u
根据Unicode字符集分析字符。此标志影响\w、\W、\b和\ b。
关于。x
徽标为您提供了更灵活的格式,以便您可以编写更容易理解的正则表达式。
惰性匹配表达式。*很好理解,就是单个字符匹配任意次,也就是贪婪匹配。
表情。*?满足条件的情况下只匹配一次,即懒匹配。
模型
形容
\w
匹配字母、数字和下划线。
\W
与字母、数字和下划线不匹配的字符。
\s
匹配任何空白字符,相当于[\t\n\r\f]
\S
匹配任何非空字符。
\d
匹配任意数字,相当于[0-9]
\D
匹配任何非数字字符。
\A
匹配字符串开始
\Z
匹配字符串的结尾,如果有换行符,只匹配换行符之前的结尾字符串。
\z
匹配字符串的结尾,如果有换行符,也匹配换行符。
\G
完成最后一次匹配的位置。
\n
匹配换行符。
\t
匹配一个选项卡。
^
匹配字符串的开头。
$
匹配字符串的结尾。
.
匹配任何字符,除了换行符。当re。DOTALL标志,则可以匹配包括换行符在内的任何字符。
[.]
用于表示一组单独列出的字符,如[amk]匹配A、M或k。
[^.]
不在[]中的字符,如[ABC],匹配除A、B和c以外的字符。
*
匹配了0个或多个表达式
匹配一个或多个表达式。
?
匹配前面正则表达式定义的0或1个片段,不贪心。
{n}
精确匹配前面的n个表达式。
{n,m}
匹配由前面的正则表达式定义的段n到m次,贪婪方式
ab
匹配a或b
( )
匹配括号中的表达式,该表达式也表示一个组。
示例:
进口re
content= Hello 1234567 World _这是一个正则表达式演示
结果=re.match(^He.*?(\d)。*演示$ ,内容)
打印(结果)
打印(result.group(1))
总结:1。匹配时,尽量在字符串中间使用非贪婪匹配,即使用。*?而不是。*避免遗漏匹配结果。
2.如果匹配结果位于字符串的末尾,则为。*?有可能什么都不匹配,因为会匹配尽可能少的字符。
2.re.search方法re.search扫描整个字符串并返回第一个成功匹配的字符串。
函数语法:re.search (pattern,string,flags=0)
re.match和re.search的区别re.match只匹配字符串的开头。如果字符串开头不符合正则表达式,则匹配失败,函数返回none而re.search匹配整个字符串,直到找到匹配项。
示例:
html=
经典老歌
经典老歌列表
西蒙伯奇
大海笑了。
既往不咎
光辉岁月/还记得泰坦巨人吗
笔记本
祝你长寿
result=re.search((。*?),html,re。s)
如果结果:
print(结果组(1),结果组(2))
3.检索并替换re.sub(模式,复制,字符串,计数=0)
Pattern:常规模式中的模式字符串。
Repl:替换字符串,也可以是函数。
String:要查找和替换的原始字符串。
Count:模式匹配后替换的最大次数。默认值0表示替换所有匹配项。
示例:
进口re
content=54aK54yr5oiR54ix5L2g
content=re sub( \ d ,,content)
打印(内容)
4.compile函数compile函数用于编译正则表达式,并生成一个正则表达式(模式)对象,供match()和search()函数使用。
函数语法:re.pile(模式[,标志])
示例:
进口re
content1=2016-12-15 12:00
content2=2016-12-17 12:55
content3=2016-12-22 13:21
pattern=re . compile( \ d { 2 }:\ d { 2 } )
结果=re.sub(模式,内容1)
result2=re.sub(模式,内容2)
结果=re.sub(模式,内容3)
打印(结果1,结果2,结果3)
5.findall*匹配和搜索匹配一次,查找所有匹配全部
在字符串中查找与正则表达式匹配的所有子字符串,并返回一个列表,如果没有找到匹配,则返回一个空列表。
函数语法:findall (string [,pos [,end pos]]) String要匹配的字符串。
Pos可选参数,指定字符串的起始位置。默认值为0。
Endpos可选参数,指定字符串的结束位置。默认值是字符串的长度。
6.re.split*注:正则表达式[\w],\w,[\w]有什么区别:
[\w]和\w没什么区别,都是匹配数字和字母下划线的多个字符;
[\w]表示匹配数字、字母、下划线和加号本身的字符;
函数语法:re.split(模式,字符串[,maxsplit=0,标志=0])
模式匹配正则表达式
字符串要匹配的字符串。
Maxsplit分隔次数,maxsplit=1分隔一次,默认值为0,次数不限。
Flags用于控制正则表达式的匹配方式,如区分大小写、多行匹配等。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。