正则表达式常见语法
re.findall()方法
findall()方法中flag参数的作用
运行结果为
运行结果是空列表, 以上说明,正则表到时中的“点号”不能和换行符匹配。
如果匹配模式设置为re.DOTALL或者re.S,点“.”号就可以匹配到所有的符号(换行符也可以匹配上)。
运行结果
'a.+bc'与'a(.+)bc'的区别:
'a.+bc'返回与整个正则格式相同的内容,正如语句1(第14行代码)返回的是'a\nbc'
'a(.+)bc'正则中的括号外的是负责定位的,结果只返回括号所在位置的内容,正如语句2(第17行代码)返回的是“换行符”。
findall()特点 总结
1、如果正则表达式中没有(小括号),则返回与整个正则匹配的列表。
2、如果正则表达式中有(小括号),则返回(小括号)中匹配的内容列表,小括号两边的a啊b啊c啊的都是负责确定提取数据所在位置的。
正则表达式中 r原串的使用
在了解r原串的时候,如何用正则表达式匹配‘转义字符’?
对应的输出结果
我们在字符串中遇到转义字符“\\"时,在写正则表达式时需要写四个"\ \ \ \ "。
如果要想匹配字符串中的‘\n’的换行符,只需要在正则表达式中写一个‘\n’即可。
运行结果如下:
r原串在正则中就可以消除转义符带来的影响
字符串中有两个斜杠,正则中有两个斜杠,就可以匹配到完全相同的两个斜杠形式的字符串
运行结果
一个斜杠
运行结果
总之,使用r原串,正则中有几个斜杠,匹配到的字符串中就有几个斜杠,不需要特殊处理。
r原串扩展
可以解决写正则的时候不符合PEP8规范的问题。如果不使用r原串,在写下图中‘\d’正则时会出现警告。
若正则前添加上r原串,警告便会自动解除。
r原串 结论
正则表达式总结