我有一个类似于此'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']
您可以根据定界线_
最高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'
可能的方法之一(如果与正则持续(:
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')