正则表达式使用系列(二)match 方法

关注RPA请访问网站:
www.i-search.com.cn
学Python,用RPA,欢迎下载使用
https://www.i-search.com.cn/?from=csdn

match 方法
从字符串的头部戒者指定位置开始查找一次匹配,只要找到了一个匹配的结果就返回
match(string[, pos[, endpos]])
string 是待匹配的字符串
pos 和 endpos 可选参数,指定字符串的起始和终点位置,默认值分别是 0 和 len
(字符串长度)。
当匹配成功时,返回一个 Match 对象,如果没有匹配上,则返回 None。

范例
import re
pattern = re.compile(r’\d+’) # 用于匹配至少一个数字
m = pattern.match(‘one12twothree34four’) # 查找头部,没有匹配
print(m)
m = pattern.match(‘one12twothree34four’, 2, 10) # 从’e’的位置开始匹配,没有匹配
print(m)

m = pattern.match(‘one12twothree34four’, 3, 10) # 从’1’的位置开始匹配,正好匹配
print(m) # 返回一个 Match 对象
print(m.group(0)) # 可省略 0
print(m.start(0)) # 可省略 0
print(m.end(0)) # 可省略 0
print(m.span(0)) # 可省略 0
Match 对象
group([group1, …]) 获得一个多个分组匹配的字符串
group()戒 group(0) 获得整个匹配的子串
start([group]) 获取分组匹配的子串在整个字符串中的起始位置(子串第一个字符的索引)
end([group]) / 获取分组匹配的子串在整个字符串中的结束位置(子串最后一个字符的索引
+1)
span([group]) 方法返回 (start(group), end(group))。

范例
import re
pattern = re.compile(r’([a-z]+) ([a-z]+)’, re.I) # re.I 表示忽略大小写
m = pattern.match(‘Hello World Wide Web’)
print(m) # 匹配成功,返回一个 Match 对象
print(m.group(0)) # 返回匹配成功的整个子串
print(m.span(0)) # 返回匹配成功的整个子串的索引
print(m.group(1)) # 返回第一个分组匹配成功的子串
print(m.span(1)) # 返回第一个分组匹配成功的子串的索引
print(m.group(2)) # 返回第二个分组匹配成功的子串
print(m.span(2)) # 返回第二个分组匹配成功的子串
print(m.groups()) # 等价于 (m.group(1), m.group(2), …)
print(m.group(3)) # 不存在第三个分组 IndexError: no such group
jupyter notebook 展示
在这里插入图片描述

使用时注意 flags 参数,本人常用推荐使用 re.M,re.S

  • re.M 多行匹配,影响 ^ 和 $
  • re.S 使 . 匹配包括换行在内的所有字符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值