1

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

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

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

4

2 回答 2

6

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

>>> pattern = 'Test.*(1)'
>>> match = re.search(pattern,str1)
>>> match.group(1)
'1'
>>> match.start(1)
9
于 2013-06-06T17:01:07.113 回答
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)为您提供第 th 组捕获的开始索引n,其中组按左括号从左到右计数。

于 2013-06-06T17:00:38.337 回答