我有这个URL字符串:
Hdf5File= '/home/Windows-Share/SCS931000126/20170101.h5'我想从这个字符串中获得两个所需的输出:
1- 'SCS931000126'
2- '20170101'我写了这个正则表达式来提取上面提到的输出,所以我写道:
import re
print(re.split(r'/', (re.split(r'[a-f]',Hdf5File)[4]))[1])
print(re.split(r'\.', (re.split(r'/', (re.split(r'[a-f]',Hdf5File)[4]))[2]))[0])这给了我想要的输出(如果有更好的方法来提取这些输出,请让我知道)。
但是情况是,URL的这一部分可能会改变,有没有无论如何,我只得到我想要的输出,总是在字符串的末尾,而不管/home/Windows-Share/的那部分可能会改变呢?
例如,如果我有:
Hdf5File='/home/dal/windows-Share/SCS931000126/20170101.h5'那么我就不能再使用我的正则表达式了。有没有一种更具可重用性的方法?
发布于 2017-07-13 21:46:15
你需要re.split吗?你也可以在这里使用str.split:
In [294]: x, y = Hdf5File.split('/')[-2:]
In [296]: x, y.split('.')[0]
Out[296]: ('SCS931000126', '20170101')发布于 2017-07-13 21:49:35
虽然简单的拆分可以像已经演示的cᴏʟᴅ的ᴘᴇᴇᴅ一样工作,但您也可以使用os.path来获取url的一部分:
import os
Hdf5File= '/home/Windows-Share/SCS931000126/20170101.h5'
f = os.path.basename(Hdf5File)
d = os.path.basename(os.path.dirname(Hdf5File))
print( d, f ) # SCS931000126 20170101.h5
# and to remove the file extension:
f = os.path.splitext(f)[0]
print(f) # 20170101https://stackoverflow.com/questions/45082501
复制相似问题