我需要在第二次出现“-”字符之前分割文本。我现在所得到的是产生不一致的结果。我尝试过各种组合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 个元素即可。
OR
您可以使用正则表达式:^([\w]+-[\w]+)
>>> import re
>>> reg = r'^([\w]+-[\w]+)'
>>> re.match(reg, a).group()
'some-sample'
EDIT:正如评论中所讨论的,这是您需要的:
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'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)