正则表达式是什么
正则表达式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个”规则字符串”,这个”规则字符串”用来表达对字符串的一种过滤逻辑。
常用语法
- re.compile(编译)
- pattern.match(从头找一个)
- pattern.search(找一个)
- pattern.findall(找所有)
- pattern.sub(替换)
编译就相当于把规则拷贝一个副本到本地,待匹配的内容较多时,使用预先编译的规则,匹配速度更快。
使用方法:
- 第一步:导入re模板
import re
,编译规则pattern=re.compile("规则",re.S)
- 第二步:使用编译的规则
pattern.findall("待匹配字符串")
- 注意:匹配规则、匹配模式,都要在编译的时候定义好。使用编译规则的时候,无法更改匹配模式。
举例
- re.S模式,等价于re.DOTALL
- \d(数字),\w(字母),\s(空格)
\D(非数字),\W(非字母),\S(非空格) - 贪婪匹配vs非贪婪匹配
贪婪匹配:顾名思义,匹配更多字符串,只返回一个结果。
非贪婪匹配:一旦匹配上,就立刻返回结果,继续匹配下一个。 - re.sub替换字符串
- re.compile编译
- 原始字符串r
原始字符串r的作用,就是去掉转义的影响,标记了r,表示这个字符串里面不含有转义字符,你看到的就是真相,不需要转义。 - 截取匹配的内容
返回结果是括号内匹配的内容。
总结
基本的语法并不难,但是这些基本的语法可以组成复杂的匹配规则。基础打扎实先~