繁体   English   中英

python提取更改字符串的特定部分

[英]python extract specific part of the changing string

我有以下网址字符串:

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'

然后我不能重用我的正则表达式。 有什么办法可以重用吗?

您是否需要re.split 您也可以将str.split用于此:

In [294]: x, y = Hdf5File.split('/')[-2:]

In [296]: x, y.split('.')[0]
Out[296]: ('SCS931000126', '20170101')

虽然简单的拆分将如已演示的那样工作,但是您也可以使用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) # 20170101

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM