我有两个字符串分割使用字符串捕捉组
/some/path/to/sequence2.1001.tif
和
/some/path/to/sequence_another_u1_v2.tif
我想编写一个函数,这样两个字符串可以通过一些正则表达式来分割成一个列表,并加入回到一起,而不会丢失任何字符。
所以
def split_by_group(path, re_compile):
# ...
return ['the', 'parts', 'here']
split_by_group('/some/path/to/sequence2.1001.tif', re.compile(r'(\.(\d+)\.')
# Result: ['/some/path/to/sequence2.', '1001', '.tif']
split_by_group('/some/path/to/sequence_another_u1_v2.tif', re.compile(r'_[uv](\d+)')
# Result: ['/some/path/to/sequence_another_u', '1', '_v', '2', '.tif']
这是不那么重要的是,正则表达式是什么我上面写的(但理想情况下,我想接受的答案同时使用)。我唯一的标准是,拆分字符串必须是可组合的,不会丢失任何数字,并且每个组按照我上面显示的方式拆分(拆分发生在捕获组的开始/结束处,而不是完整字符串。
我与finditer的东西,但它是可怕的哈克和我在寻找一个更清洁的方式。任何人都可以帮我吗?
可能重复[在Python中,我如何拆分字符串并保留分隔符?](https://stackoverflow.com/questions-2136556/in-python-how-do-i-split-a-string-and-keep-the-separators) – szabadkai
如果这些是路径,你可以考虑'os.path' – pylang