首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python提取更改字符串的特定部分

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

Stack Overflow用户
提问于 2017-07-13 21:44:17
回答 2查看 81关注 0票数 0

我有这个URL字符串:

代码语言:javascript
复制
Hdf5File= '/home/Windows-Share/SCS931000126/20170101.h5'

我想从这个字符串中获得两个所需的输出:

代码语言:javascript
复制
1- 'SCS931000126' 
2- '20170101'

我写了这个正则表达式来提取上面提到的输出,所以我写道:

代码语言:javascript
复制
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/的那部分可能会改变呢?

例如,如果我有:

代码语言:javascript
复制
Hdf5File='/home/dal/windows-Share/SCS931000126/20170101.h5'

那么我就不能再使用我的正则表达式了。有没有一种更具可重用性的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-13 21:46:15

你需要re.split吗?你也可以在这里使用str.split

代码语言:javascript
复制
In [294]: x, y = Hdf5File.split('/')[-2:]

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

Stack Overflow用户

发布于 2017-07-13 21:49:35

虽然简单的拆分可以像已经演示的cᴏʟᴅ的ᴘᴇᴇᴅ一样工作,但您也可以使用os.path来获取url的一部分:

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45082501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档