正则表达式
---在无穷多的字符串中找到自己需要的那些
字符串是什么样的,有几个,从哪开始,从哪结束,长字符串分组,分组的命名提取
1.各种字符类型的表示
[ ]穷举的用法:[123] 不需要加空格
[^123] 可以取反
[0-9] 可使用范围
2.字符的数量
如需要使用* + ?当字符串,加\转义
贪婪和非贪婪的前提是要满足整个正则表达式
贪婪模式(默认状态):匹配尽量多的字符
非贪婪模式(在数量字符后加?):匹配尽量少的字符
3.保留原始状态字符串前加r,不必考虑字符串的转义问题。
4.边界问题
^表示字符串开头
$表示字符串结尾
\b表示单词字符的边界
**Python中的所谓单词就是\w可以表达的字符串
\B表示非单词字符的边界
举例example:a+b=3 整个单词字符的边界为\b,单词内部的边界为\B
5.分组()
基本用法
--将表达式分组、提取
r = re.match("^(\d{4})-(\d{7})","0531-1234567")
r.group(1)
表达式中第一个括号找到的朋友
r.group(2)
表达式中第二个括号找到的朋友
r.groups()
列出所有分组
r.groups()[0]
第一个朋友
分组的命名
默认命名为数字:(表达式)
提取: \数字
.
自己命名:(?P<名字1>表达式)
提取:(?P=名字1)
分组搭配 | 表示或者