识别模式匹配的位置

时间:2013-06-06 16:56:14

标签: python regex

我需要找到字符串匹配的确切位置..

>>> pattern = 'Test.*1'
>>> str1='Testworld1'
>>> match = re.search(pattern,str1)
>>> match.group()
'Testworld1'

我需要匹配模式的'Testworld1'字符串中的1(第10个字节)位置。* 1.

2 个答案:

答案 0 :(得分:6)

你想要做两件事。首先从.*1中创建一个组,然后在访问该组时,您可以调用.start(),如下所示:

>>> pattern = 'Test.*(1)'
>>> match = re.search(pattern,str1)
>>> match.group(1)
'1'
>>> match.start(1)
9

答案 1 :(得分:3)

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)为您提供了n组捕获的起始索引,其中组的开头括号从左到右计数。