拆分存储每个子串

时间:2015-11-17 07:58:38

标签: python regex string

python中有一个很酷的原生.split(),返回子串列表。是否有一种原生的,或者至少不是非常讨厌的方式来分割多个分隔符并自动获得子串坐标?像这样:

"abc? !cde".some_smart_split("!?") -> [("abc", 0, 2), (" ", 4, 4), ("cde", 6, 8)]

当然,我自己也可以写一些天真的代码。但是我的用例要复杂得多,找到简洁的东西会很棒。

1 个答案:

答案 0 :(得分:3)

使用re.finditer

>>> import re
>>> [(match.group(0), match.start(), match.end())
     for match in re.finditer(r'[^!?]+', 'abc? !cde')]
[('abc', 0, 3), (' ', 4, 5), ('cde', 6, 9)]