假设我有以下字符串:
s = "once upon a time, there was once a person"
[不使用findall
来获取字符串中的所有once
:
>>> re.findall(r'\bonce\b', s)
['once', 'once']
是否有一种增量使用search
的方式,因此它仅返回第一次出现的内容,然后递增输入的字符串?
while (s):
x = re.search(r'\bonce\b', s) # return 'once' and increment the string to s[4:]
yield x
使用re.finditer()
for match in re.finditer(r'\bonce\b', s):
yield match
或者您可以只返回迭代器,而不是编写自己的循环。
return re.finditer(r'\bonce\b', s)