在Python的正则表达式中,有一个参数为re.S.它表示“.”(不包含外侧双引号,下同)的作用扩展到整个字符串,包括“\n”.看如下代码: import re a = '''asdfhellopass: 123 worldaf ''' b = re.findall('hello(.*?)world',a) c = re.findall('hello(.*?)world',a,re.S) print 'b is ' , b print 'c is ' , c 运行结果如下: b is [] c…
encode('string-escape') 解决 比如想匹配'\x0e\x0a'中的'\x'后的内容,这里希望把'\x0e'作为一个字符串,那么其中的\应该被转义. 未加转义的正则: p = '(?<=\x)[0-9A-Za-z]{2}' 直接这样写会报错,需要给\转义,于是变为 p = '(?<=\\x)[0-9A-Za-z]{2}' 但由于使用的时候,会先将p的内容转义,然后匹配,所以又变成了\x和原始数据匹配,又会出错.解决: p = '(?<=\\x)[0-9A-Za-z]{…
re.S的作用: 不使用re.S时,则只在每一行内进行匹配,如果存在一行没有,就换下一行重新开始,使用re.S参数以后,正则表达式会将这个字符串看做整体,在整体中进行匹配 对比输出结果: import re a = """sdhellolsdlfsdfiooe: yy988989pythonafsf""" b = re.findall('hello(.*?)python',a) c = re.findall('hello(.*?)python',…