标签:应用 count 有用 group 数值 变量 \n 有趣的 迭代
a:当正则进入程序中,会引发转义字符的问题
转义字符:程序中的反斜杠有特殊意义,\相当于转义,所以\\相当于翻转义;
b:关于中括号的[]一般量词进去都会现原形,[(),+,*,?,/,$,.]这些都会以本身意义表示;
而还有一个[-]如果不放在开头,就表示什么到什么,放在开头就是普通的减;
c:如果在一串字符串前加上r,表示强制转义,所有转义字符失效; 例:r‘\n\t\d‘ 输出:\n\t\d
但转义字符r只在文本输入的输入的时候有用,不能对变量进行转义;
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
标签:应用 count 有用 group 数值 变量 \n 有趣的 迭代
原文地址:https://www.cnblogs.com/0627zhou/p/9438919.html