1

如何在字符串中找到子字符串的所有实例?

例如,我有字符串 ( "%1 is going to the %2 with %3")。我需要提取此字符串中的所有占位符 ( %1, %2, %3)

当前代码只能找到前两个,因为结尾不是空格。

import re
string = "%1 is going to the %2 with %3"


r = re.compile('%(.*?) ')
m = r.finditer(string)
for y in m:
 print (y.group())
4

1 回答 1

5

不要在空格上匹配,而是在单词边界上匹配\b

r = re.compile(r'%(.*?)\b')

您可能希望仅将字符限制为单词字符而不是.通配符,并至少匹配一个字符:

r = re.compile(r'%(\w+)\b')

您似乎也没有使用捕获组,因此您可以省略:

r = re.compile(r'%\w+\b')
于 2013-05-08T19:24:59.287 回答