正则表达式(Re库)入门
正则表达式的概念
概念
正则表达式(regular expression,regex,RE):是用来简洁表达一组字符串的表达式。
应用:最主要应用在字符串匹配。
使用
没编译前在Python中只是一个字符串,只有经过编译才是有效的表达式。
正则表达式的语法
常用操作符
正则表达式经典实例
匹配IP地址的正则表达式
IP地址分4段,每段0-255。
Re库的基本使用
Re库介绍
re
是Python的标准库,主要用于字符串匹配。
import re
正则表达式的表达类型
- raw string类型(原生字符串类型):不对转义字符‘\’进行转义的字符串类型,只需在字符串前面加r。
- string类型:要考虑到转义字符‘\’,过于繁琐,不建议。
Re库的主要功能函数
re.search(pattern, string, flags=0)
参数 | 说明 |
---|---|
pattern | 正则表达式 |
string | 待匹配字符串 |
flags | 正则表达式使用时的控制标记 |
匹配邮政编码:
re.match(pattern, string, flags=0)
match()
方法必须从头开始匹配
re.findall(pattern, string, flags=0)
re.split(pattern, string, maxsplit=0, flags=0)
参数 | 说明 |
---|---|
maxsplit | 最大分割数,剩余部分作为最后一个元素输出 |
re.finditer(pattern, string, flags=0)
re.sub(pattern, repl, string, count=0, flags=0)
参数 | 说明 |
---|---|
repl | 替换匹配字符串的字符串 |
count | 匹配的最大替换次数 |
Re库的另一种等价用法
面向对象用法只需一次编译,即可多次使用,当正则表达式要多次使用时,能提高效率。
regex = re.compiler(pattern, flags=0)
将正则表达式的字符串形式编译成正则表达式对象。
Re库的Match对象
Match对象是一次匹配的结果,包含了匹配的很多信息。
Match对象的属性
Match对象的方法
Re库的贪婪匹配和最小匹配
当有长短不一的多个匹配项的时候,匹配哪一个呢?
Re库默认使用贪婪匹配,即输出匹配最长的字串。
最小匹配,输出最短的子串。
最小匹配的操作符
小结
参考
中国大学MOOC——网络爬虫之实战