作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要在第二次出现“-”字符之前拆分文本。我现在所拥有的是产生不一致的结果。我尝试了 rsplit
的各种组合,通读并尝试了其他解决方案,但没有结果。
要拆分的示例文件名:'some-sample-filename-to-split'
在 data.filename
中返回。在这种情况下,我只想返回 'some-sample'
。
fname, extname = os.path.splitext(data.filename)
file_label = fname.rsplit('/',1)[-1]
file_label2 = file_label.rsplit('-',maxsplit=3)
print(file_label2,'\n','---------------','\n')
最佳答案
你可以这样做:
>>> a = "some-sample-filename-to-split"
>>> "-".join(a.split("-", 2)[:2])
'some-sample'
a.split("-", 2)
会将字符串拆分为第二次出现的 -
。
a.split("-", 2)[:2]
将给出列表中的前 2 个元素。然后简单地连接前 2 个元素。
或
你可以使用正则表达式:^([\w]+-[\w]+)
>>> import re
>>> reg = r'^([\w]+-[\w]+)'
>>> re.match(reg, a).group()
'some-sample'
编辑:正如评论中所讨论的,这是您需要的:
def hyphen_split(a):
if a.count("-") == 1:
return a.split("-")[0]
return "-".join(a.split("-", 2)[:2])
>>> hyphen_split("some-sample-filename-to-split")
'some-sample'
>>> hyphen_split("some-sample")
'some'
关于python - 在第二次出现字符后拆分文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36300158/
在 python 中,为什么 os.path.splitext 使用 '.'作为扩展分隔符而不是 os.extsep? 最佳答案 os.extsep 是通过导入 os.path.extsep 定义的。
我是一名优秀的程序员,十分优秀!