我需要找到字符串匹配的确切位置..
>>> pattern = 'Test.*1'
>>> str1='Testworld1'
>>> match = re.search(pattern,str1)
>>> match.group()
'Testworld1'
我需要匹配模式的'Testworld1'字符串中的1(第10个字节)位置。* 1.
答案 0 :(得分:6)
你想要做两件事。首先从.*1
中创建一个组,然后在访问该组时,您可以调用.start()
,如下所示:
>>> pattern = 'Test.*(1)'
>>> match = re.search(pattern,str1)
>>> match.group(1)
'1'
>>> match.start(1)
9
答案 1 :(得分:3)
>>> 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
组捕获的起始索引,其中组的开头括号从左到右计数。