码迷,mamicode.com
首页 > 其他好文 > 详细

re模块

时间:2018-08-07 20:41:28      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:应用   count   有用   group   数值   变量   \n   有趣的   迭代   

1.re模块

a:当正则进入程序中,会引发转义字符的问题

转义字符:程序中的反斜杠有特殊意义,\相当于转义,所以\\相当于翻转义;

b:关于中括号的[]一般量词进去都会现原形,[(),+,*,?,/,$,.]这些都会以本身意义表示;

而还有一个[-]如果不放在开头,就表示什么到什么,放在开头就是普通的减;

c:如果在一串字符串前加上r,表示强制转义,所有转义字符失效; 例:r‘\n\t\d‘ 输出:\n\t\d

但转义字符r只在文本输入的输入的时候有用,不能对变量进行转义;

技术分享图片

 

2.re模块的应用

1).findall:

a:参数:findall(pattern(正则表达式),string,flags=0)

b:返回值类型:list,而且是迭代输出,

c:返回值内容:匹配到的所有项,匹配不到,返回空列表;

2).search:

a:参数:search(pattern(正则表达式),string,flags=0)

b:返回值类型:正则匹配的对象;如果没找到,则返回None

c:返回值内容:内存地址,只匹配第一个符合规则的对象;

3).match:

 

a:参数:search(pattern(正则表达式),string,flags=0)

 

b:返回值类型:正则匹配的对象;如果没找到,则返回None

 

c:返回值内容:内存地址,只匹配开头是否符合规则,跟search一样,只是在search的正则表达式前加了^;

d:如果想要输出数值,需要group方法,

4)sub:

a:参数:sub(pattern, repl(要替换的值), string, count=0(替换次数), flags=0)

 

#几个有趣的事情

#   \d? 的情况替换:
ret = re.sub(\d?,M,56f,3)
print(ret)
#输出结果:
MMfM
?代表0个或一个,所以它会一个一个找,
如果找不到,把原字符拿下来,但也算0次所以再加一个M


#      \d+的情况替换:
ret = re.sub(\d+,M,56f,3)
print(ret)
#输出结果:
Mf
+代表一个或多个,根据贪婪法则,所以会将一组数字作为整体替换


#     \d*的情况替换
ret = re.sub(\d*,M,56f)
print(ret)
#输出结果:
MfM
*代表0个或多个,即可以把56作为一组替换,又能不匹配值0个做添加M

 

#上面这三种情况如果执行subn()得到的次数依次是 (MMfM,3)(Mf,1)(MfM,2)

5)split

 

re模块

标签:应用   count   有用   group   数值   变量   \n   有趣的   迭代   

原文地址:https://www.cnblogs.com/0627zhou/p/9438919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!