我有两个“ - ”的字符串
467.2-123-hdxdlfow
我想在第二个“ - ”后删除所有内容,以便得到“467.2-123”。这样做的最佳方式是什么?
答案 0 :(得分:13)
before, sep, after = theString.rpartition("-")
这会将str分成最后一次出现的“ - ”,你的答案就是变量before
。
答案 1 :(得分:9)
In [6]: "-".join('467.2-123-hdxdlfow'.split('-')[0:2])
Out[6]: '467.2-123'
答案 2 :(得分:2)
>>> s = '467.2-123-hdxdlfow'
>>> s[:s.rfind('-')]
'467.2-123'
答案 3 :(得分:2)
如果你追求的是最后一个元素,我已经修改了spicavigo的答案以排除最后一个元素。
a='467.2-123-hdxdlfow'
'-'.join(a.split('-')[:-1])
答案 4 :(得分:1)
a='467.2-123-hdxdlfow'
'-'.join(a.split('-')[:2])
如果你有2' - ',你可以做
a.rsplit('-',1)[0]
答案 5 :(得分:0)
试试这个正则表达式
([^-]*-[^-]*)-.*
并询问第一个捕获组的结果(示例中为(...)
)。
答案 6 :(得分:0)
你可以尝试这个result = re.sub("([^-]*-[^-]*)(-.*$)", r"\1", '467.2-123-hdxdlfow')
给出467.2-123