我有兩個字符串分割使用字符串捕捉組
/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