我需要找到字符串匹配的确切位置..
>>> pattern = 'Test.*1'
>>> str1='Testworld1'
>>> match = re.search(pattern,str1)
>>> match.group()
'Testworld1'
我需要匹配模式 .*1 的“Testworld1”字符串中的 1(第 10 个字节)的位置。
你想做两件事。首先从 中创建一个组.*1
,然后在访问该组时可以调用.start()
如下所示:
>>> pattern = 'Test.*(1)'
>>> match = re.search(pattern,str1)
>>> match.group(1)
'1'
>>> match.start(1)
9
怎么样end()
>>> pattern = r'Test.*1'
>>> str1='Testworld1'
>>> match = re.search(pattern,str1)
>>> match.end()
10
对于更复杂的应用程序(您不只是寻找匹配中最后一个字符的最后位置),您可能希望使用捕获,start
而不是:
>>> pattern = r'Test.*(11)'
>>> str1='Testworld11'
>>> match = re.search(pattern,str1)
>>> match.start(1) + 1
10
在这里,start(n)
为您提供第 th 组捕获的开始索引n
,其中组按左括号从左到右计数。