如果我在Python中有一个给定的字符串s
,是否可以轻松检查正则表达式是否匹配从字符串中特定位置i
开始的字符串?
我宁愿不将整个字符串从i
切片到最后,因为它看起来不太可扩展(我认为排除了re.match
)。
答案 0 :(得分:5)
re.match
并不直接支持此功能。但是,如果您使用re.compile
预编译正则表达式(通常是一个好主意),那么RegexObject
的类似方法match
(和{{3} })都采用可选的 pos 参数:
可选的第二个参数 pos 给出了搜索开始的字符串中的索引;它默认为
0
。这并不完全等同于切割字符串;'^'
模式字符匹配字符串的实际开头和新行后面的位置,但不一定匹配搜索开始的索引。
示例:
import re
s = 'this is a test 4242 did you get it'
pat = re.compile('[a-zA-Z]+ ([0-9]+)')
print pat.match(s, 10).group(0)
输出:
'test 4242'
答案 1 :(得分:0)