我有一个像这样的字符串'00004079_20150427_5_169_192_114.npz'
,我想将其拆分为这个['00004079_20150427_5', '169_192_114.npz']
。
我尝试了python字符串split()
方法,
a = '00004079_20150427_5_169_192_114.nii.npz'
a.split("_",3)
但是它返回了这个
>>> ['00004079', '20150427', '5', '169_192_114.nii.npz']
如何通过第三个“ _”外观将其分为2部分?谢谢!
更多
我尝试过了
reg = ".*\_.*\_.\_"
re.split(reg, a)
但它返回
>>> ['', '169_192_114.nii.npz']
答案 0 :(得分:4)
您最多可以基于定界符_
拆分字符串3次,然后将除最后一个值以外的所有内容重新加入
>>> *start, end = s.split('_', 3)
>>> start = '_'.join(start)
>>>
>>> start
'00004079_20150427_5'
>>> end
'169_192_114.npz'
对于 python2 ,您可以代替此操作
>>> lst = s.split('_', 3)
>>> end = lst.pop()
>>> start = '_'.join(lst)
>>>
>>> start
'00004079_20150427_5'
>>> end
'169_192_114.npz'
答案 1 :(得分:1)
一种可能的方法(如果使用正则表达式):
import re
s = '00004079_20150427_5_169_192_114.nii.npz'
res = re.search(r'^((?:[^_]+_){2}[^_]+)_(.+)', s)
print(res.groups())
输出:
('00004079_20150427_5', '169_192_114.nii.npz')