我使用findall
和finditer
方法制作了一个正则表达式,但是它们是不同的。
我需要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'>]