re模块被称为正则表达式,其作用为,创建一个“规则表达式”,用于验证和查找符合规则的文本,广泛用于各种搜索引擎、账户密码的验证等。
预定义字符:
\d:匹配所有的十进制数字0-9
\D:匹配所有的非数字,包含下划线
\s:匹配所有空白字符(空格、TAB等)
\S:匹配所有非空白字符,包含下划线
\w:匹配所有字母、汉字、数字a-z A-Z 0-9
\W:匹配所有非字母、汉字、数字,包含下划线
特殊字符:
$:匹配一行的结尾(必须放在正则表达式最后面)
^:匹配一行的开头(必须放在正则表达式最前面)
*:前面的字符可以出现0次或多次(0~无限)
+:前面的字符可以出现1次或多次(1~无限)
?:变"贪婪模式"为"勉强模式",前面的字符可以出现0次或1次
.:匹配除了换行符"\n"之外的任意单个字符
|:两项都进行匹配
[ ]:代表一个集合,有如下三种情况
[abc]:能匹配其中的单个字符
[a-z0-9]:能匹配指定范围的字符,可取反(在最前面加入^)
[2-9] [1-3]:能够做组合匹配
{ }:用于标记前面的字符出现的频率,有如下情况:
{n,m}:代表前面字符最少出现n次,最多出现m次
{n,}:代表前面字符最少出现n次,最多不受限制
{,m}:代表前面字符最多出现n次,最少不受
{n}:前面的字符必须出现n次
re库是python的标准库
re库采用raw string类型表示正则表达式,表示为:r'test'
原生字符串(raw string)是不包含转义符的字符串
例子:
爬取好房通的网站 优优好房 的房源时用到了re库解析文本,
raw string:
r'[1-9]\d{5}'
r'\d{3}-\d{8}|\d{4}-\d{7}'
string:
'[1-9]\\d{5}'
'\\d{3}-\\d{8}|\\d{4}-\\d{7}'
Re库主要功能函数
re.search(pattern, string, flags=0)
pattern:正则表达式的字符串或原生字符串表示
string:待匹配字符串
flags:正则表达式使用时的控制标记
re.match(pattern,string,flags=0)
因为match为从开始位置开始匹配,使用时要加if进行判别返回结果是否为空,否则会报错
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库的另一种等价用法
Re库的函数式用法为一次性操作,还有一种为面向对象用法,可在编译后多次操作
1regex = re.compile(pattern,flags=0)
通过compile生成的regex对象才能被叫做正则表达式
Re库的match对象
Match对象的属性
Match对象的方法
实例
Re库的贪婪匹配和最小匹配
Re库默认采取贪婪匹配,即输出匹配最长的子串
re库是python的标准库
re库采用raw string类型表示正则表达式,表示为:r'test'
原生字符串(raw string)是不包含转义符的字符串
例子:
爬取好房通的网站 优优好房 的房源时用到了re库解析文本,
raw string:
r'[1-9]\d{5}'
r'\d{3}-\d{8}|\d{4}-\d{7}'
string:
'[1-9]\\d{5}'
'\\d{3}-\\d{8}|\\d{4}-\\d{7}'
Re库主要功能函数
re.search(pattern, string, flags=0)
pattern:正则表达式的字符串或原生字符串表示
string:待匹配字符串
flags:正则表达式使用时的控制标记
re.match(pattern,string,flags=0)
因为match为从开始位置开始匹配,使用时要加if进行判别返回结果是否为空,否则会报错
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库的另一种等价用法
Re库的函数式用法为一次性操作,还有一种为面向对象用法,可在编译后多次操作
1regex = re.compile(pattern,flags=0)
通过compile生成的regex对象才能被叫做正则表达式
Re库的match对象
Match对象的属性
Match对象的方法
实例
Re库的贪婪匹配和最小匹配
Re库默认采取贪婪匹配,即输出匹配最长的子串