正则
re模块的使用:
import re
result = re.match(正则表达式,要匹配的字符串)
result.group()
正则表达式中忽略大小写 需要在match中加入第三个参数 re.I
正则表达式中不识别中文 需要在match中加入第三个参数 re.A (在\w中) 等价于[a-zA-Z0-9_]
匹配单个字符:
\d 等价于一位数字(0-9)
[] 匹配括号内的任意一个 (中间如果是连续的可以用 - 连接 也可全部都例举出来)
. 任意一个 相当于linux中的 *.py中的* 匹配不到换行\n re.S 可以匹配到换行 需要在match中加入第三个参数
匹配多个字符:
{m} 匹配前一次字符出现多次
{m,n} 匹配前面字符出现从m到n次 n可以省略表示出现m到无限次 m必须大于n
? 前面紧挨着的东西可有可无 有只能给有一个
+ 前面字符必须至少有一个
* 前面字符可有可无 .* 前面字符任意一次
匹配开头结尾边界:
^ 匹配开头
$ 匹配结尾
如果在正则中要用某些普通的字符,比如逗号问号等 需要在字符前添加一个反斜杠进行转义
匹配分组:
| 匹配左右任意一个
(ab) 将括号内的字符作为一个分组 可以通过group(1) 查看
\num 引用分组num匹配到的字符串
re高级用法:
search 匹配次数 匹配到第一个停止但不会从头开始匹配 match 从头开始匹配
findall 返回值为列表 不需要用group查看 匹配所有
sub 替换 支持函数调用
spilt 根据匹配进行切割字符串,并返回一个列表
[^a] 只要不是a都满足
贪婪和非贪婪:
python 默认是贪婪的
? 贪婪特性转成非贪婪 相当于条件成立取最少的
r的使用:
r表示原生字符串