正则表达式解析[重复]

问题描述 投票:-2回答:1

假设我有以下字符串:

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
python regex yield
1个回答
0
投票

使用re.finditer()

for match in re.finditer(r'\bonce\b', s):
    yield match

或者您可以只返回迭代器,而不是编写自己的循环。

return re.finditer(r'\bonce\b', s)
© www.soinside.com 2019 - 2024. All rights reserved.