一、正则表达式的规则
1、支持普通字符匹配
2、元字符,一个符号匹配一堆字符
- \d 匹配数字
- \w 匹配数字、字母、下划线
- \D \d的取反,除了数字全部匹配
- \W \w的取反
- [abc] 匹配字母a、b、c
- [^abc] [abc]的取反,除了a、b、c全部匹配
- . 匹配除了换行符之外的所有内容
3、量词 --- 控制元字符出现的次数
-
- 前面的元字符出现一次或多次
- * 前面的元字符出现0次或多次(贪婪匹配)
- ? 前面的元字符出现0次或多次(非贪婪)
4、惰性匹配 .*?
示例:玩吃鸡游戏,晚上一起玩游戏,干嘛呢?打游戏啊
玩.*游戏 匹配结果:玩吃鸡游戏,晚上一起玩游戏,干嘛呢?打游戏
玩.*?游戏 匹配结果:(1)玩吃鸡游戏 (2)玩游戏
二、python正则re模块
1、res = re.findall(r"正则表达式", "原始文本") ---> 拿到所有匹配结果,存为列表
2、res = re.search(r"正则表达式", "原始文本") ---> 拿到第一个匹配结果就返回
通过res.group()查看结果
3、res = re.finditer(r"正则表达式", "原始文本") ---> 拿到所有结果,放到迭代器里(原始文本较大时节约内存)
4、预加载
obj = re.compile(r"正则表达式")
re.findall("原始文本") 。。。。
5、(?P<name>.*?) ---> 将.*?所匹配的内容起名为name,可通过res.group(name)查看