为什么找到的findall和finditer匹配项不同?

时间:2018-10-03 15:37:44

标签: python regex python-3.x

我使用findallfinditer方法制作了一个正则表达式,但是它们是不同的。
我需要finditer来找到类似findall的匹配项,还需要知道跨度/索引。

import re

string='This is my string.'

letters='abcdefghijklmnopqrstuvwxyzабвгґдеєжзиіїйклмнопрстуфхцчшщьюяыъэё'
letters+=letters.upper()+'\-\''

print(re.findall(rf'([{letters}]+?)(?:[^{letters}]|$)',string))
print(list(re.finditer(rf'([{letters}]+?)(?:[^{letters}]|$)',string)))

Output:
['This', 'is', 'my', 'string']
[<re.Match object; span=(0, 5), match='This '>, <re.Match object; span=(5, 8), match='is '>, <re.Match object; span=(8, 11), match='my '>, <re.Match object; span=(11, 17), match='string'>]

0 个答案:

没有答案