我需要在第二次出现“-”字符之前拆分文本。我现在所产生的结果不一致。我尝试rsplit
了SO的各种组合并通读并尝试了SO上的其他解决方案,但没有结果。
要分割的样本文件名:'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'
如何基于第一个等号拆分字符串? 所以
问题内容: 给定分隔符的第n次出现后,是否存在Python方式来拆分字符串? 给定一个字符串: 它应分为(第二次出现后,定界符为“ _”): 还是实现此目的的唯一方法是计数,拆分和合并? 问题答案: 似乎这是最易读的方式,替代方法是regex)
问题内容: 我有类似’keepme:cutme’或’string-without-separator’之类的字符串,应分别成为’keepme’和’string- without-separator’。可以在PostgreSQL中完成吗?我试过了: 但这会留在字符串中,如果字符串中没有字符串,它将无法正常工作。 问题答案: 用途 : 如果分隔符不存在,则返回整个字符串。而且很容易获得第二或第三部分等
我有很多这样的字符串: 我想拆分这些字符串,使其如下所示: 然后,这些将被添加到数据集中并在以后进行分析。 我遇到的问题是,如果我使用以下代码: 它会将它们分裂两次;我只想在第二次出现:时将其拆分一次。 我该怎么做呢?
我有一个如下字符串 如何删除第二个字符
问题内容: 给我们一个字符串,说一个子字符串,说。我需要找到字符串在原始字符串中第二次出现时的索引。 在这种情况下将返回2。在这种情况下,我希望输出为10。 问题答案: 使用的重载版本,它将起始索引(fromIndex)作为第二个参数: