我有这个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/
的这一部分可能会发生变化,无论如何我只得到我想要的输出,它总是在字符串的末尾,而不管URL的哪一部分可能会改变?
例如,如果我有:
Hdf5File='/home/dal/windows-Share/SCS931000126/20170101.h5'
然后我无法重复使用我的正则表达式。有没有办法以更可重复的方式进行此操作?
答案 0 :(得分:4)
您需要re.split
吗?您也可以使用str.split
来表示这个:
In [294]: x, y = Hdf5File.split('/')[-2:]
In [296]: x, y.split('.')[0]
Out[296]: ('SCS931000126', '20170101')
答案 1 :(得分:2)
虽然简单的拆分可以像cᴏʟᴅsᴘᴇᴇᴅ一样展示,但您也可以使用os.path
来获取部分网址:
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) # 20170101