Python中常用re模块
常用语法:
^ | 匹配字符串开头 |
---|---|
$ | 匹配字符串结尾 |
. | 匹配任意字符,除了换行符 |
[…] | 匹配指定的一组字符,[amk]匹配’a’或’m’或’k’ |
[^…] | 匹配除了这组字符以外的字符 |
* | 匹配0或多个 |
+ | 匹配1或多个 |
? | 匹配0或1个,非贪婪模式 |
{n} | 精确匹配前面表达式n次,如a{2}不能匹配ba,只能匹配baab |
{n,} | 匹配n次前面的表达式,a{1,} == a+,a{0,} == a* |
{n,m} | 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 |
a | b |
(re) | 匹配括号内的表达式 |
\w | 匹配字母数字及下划线 |
\W | 匹配非字母数字及下划线 |
\s | 匹配空白字符[\t\n\r\f] \f换页 \r回车 |
\S | 匹配非空白字符 |
\d | 匹配任意数字,等价于 [0-9]. |
\D | 匹配任意非数字 |
常用方法
从字符串中寻找指定的字符串
1、match
re.match(pattern, string[, flags])
从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None,若要完全匹配,pattern要以$结尾,只返回第一个。
2、search
re.search(pattern, string[, flags])
若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个。
3、findall
re.findall(pattern, string[, flags])
返回string中所有与pattern相匹配的全部字串,返回形式为数组。
4、finditer
re.findall(pattern, string[, flags])
返回string中所有与pattern相匹配的全部字串,返回形式为数组。
如果匹配成功,match、search、返回Match对象,finditer返回Match对象的迭代器,获取结果要调用Match对象的group(index),groups()方法
1. group():返回母字符串中与模式pattern匹配的字符串
2. groups():所有的group组成一个元组,group(1)是与patttern中第一个group匹配成功的子串。
3. 返回的就是所有groups的数组,就是group组成的元组的数组。