首页 > 编程语言 > 详细

python模块学习之re模块

时间:2020-10-27 18:34:20      阅读:24      评论:0      收藏:0      [点我收藏+]
.   (点) 在默认模式,匹配除了换行的任意字符
^   匹配字符串的开头
$   匹配字符串的结尾


*       重复零次或多次
+       重复一次或多次
?      重复零次或一次
{n}     重复n次
{n,}    重复n次或多次
{n,m}   重复n到m次

其中* + ?都是贪婪匹配即尽可能多的匹配,在其后直接加?后就可以变为非贪婪匹配

[...]    匹配其中的字符,^放在开头表示非

\w    匹配字母或数字或下划线
\s    匹配任意的空白符
\d    匹配数字
\n    匹配一个换行符
\W    匹配非字母或数字或下划线
\D    匹配非数字
\S    匹配非空白符
a|b   匹配字符a或字符b

 

例子

s=abcdef
print(re.findall(^a,s)) #匹配以a开头的一个字符
#[‘a‘]

s=abcdef
print(re.findall(^a.*,s)) #匹配a开头后面有任意字符
#[‘abcdef‘]

s=abcdef
print(re.findall(^a.*?,s))#加?变为非贪婪模式


 ()元字符,分组

 也就是分组匹配,()里面的为一个组也可以理解成一个整体

 如果()后面跟的是特殊元字符如   (adc)*   那么*控制的前导字符就是()里的整体内容,不再是前导一个字符

str="a3a3ddd"
print(re.search("(a3)+",str).group()) #匹配一个或多个a3
 

 

python模块学习之re模块

原文:https://www.cnblogs.com/quanloveshui/p/13886005.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!