[英]Prefixing the results of string.split with the substring indices of each result
[英]Split a string storing the indices of every substring
python中有一个很酷的原生.split()
,返回子串列表。 是否有一种原生的,或者至少不是非常讨厌的方式来分割多个分隔符并自动获得子串坐标? 像这样的东西:
"abc? !cde".some_smart_split("!?") -> [("abc", 0, 2), (" ", 4, 4), ("cde", 6, 8)]
当然,我自己也可以写一些天真的代码。 但是我的用例要复杂得多,找到简洁的东西会很棒。
使用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)]
[^!?]+
匹配不是的字符!
, ?
。 re.MatchedObject.group(0)
来获取匹配的字符串。 re.MatchedObject.start
和re.MatchedObject.end
获取匹配部分的索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.