如果我s在Python中有一个给定的字符串,是否可以轻松检查正则表达式是否匹配从字符串中特定位置开始i的字符串?
我宁愿不将整个字符串从i最后切片到最后,因为它看起来不太可扩展(re.match我认为排除了).
re.match不直接支持这一点.但是,如果你预编译你的正则表达式(通常是一个好主意)re.compile,那么RegexObject类似的方法,match (和search)都采用一个可选的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)
Run Code Online (Sandbox Code Playgroud)
输出:
'test 4242'
Run Code Online (Sandbox Code Playgroud)