正则表达式(Regrelar Expression)
正则表达式是一种描述性的语言表达,本身是字符串;它是给字符串定义一个规则,凡是符合规则的字符串,认为它“匹配了”,否则就是匹配失败,被任务是不合法的,常见的有Email格式,密码格式的匹配等,
例如:
- \d{n,m} 表示匹配n~m个数字
- \w 表示匹配一个字母或者数字
- . 表示匹配任意字符,如
py.
可以匹配到pyo
,py!
等 - \s 表示可以匹配一个空格
- ^ 表示行的开头,
^\d
表示必须以数字开头 - $ 表示行的结束,
\d$
表示必须以数字结束 - + 表示贪婪匹配,可以多个匹配
\s+
表示匹配多个连续的空格 - * 表示连续匹配,或者叫通配符,例如:
0*
表示可以将000,00000等匹配出来
需要注意的是,下划线_
或者横杠-
需要用转义字符\_ \-
。
Python中提供内建模块re
,代表: regular expression 正则表达式。
re模块
在Python中要用到正则表达式时,建议要再匹配的字符串前加上r
前缀,表示告诉编译器这个String(也就是写的正则表达式)是Raw String,在字符串中含有的特殊字符不需要转义,原样输出.例如:rABC\n001\-234
- match() 方法
|
|
- spilt() 方法切分字符串,可以结合正则表达式使用
|
|
- 分组提取(基于match方法)
()
表示的是就是要提取的分组(Group)
|
|
编译(compile)
在Python脚本中使用正则表达式,re模块内部会干两件事情:
- 编译正则表达式,如果正则表达式本身不合法,会报错;
- 用编译后的正则表达式去匹配字符串。
|
|