蟒蛇:分割字符串的字符

问题描述:

后,我有一个字符串有两个“ - ”蟒蛇:分割字符串的字符

467.2-123-hdxdlfow 

我想之后的第二去除一切“ - ”让我得到“467.2-123”。做这个的最好方式是什么?

In [6]: "-".join('467.2-123-hdxdlfow'.split('-')[0:2]) 
Out[6]: '467.2-123' 

尝试此正则表达式

([^-]*-[^-]*)-.* 

和询问的结果对于第一捕获组((...)中的例子)。

>>> s = '467.2-123-hdxdlfow' 
>>> s[:s.rfind('-')] 
'467.2-123' 
+0

我最喜欢这个,因为它适用于任何数量的破折号 - 它会摆脱最后一个和任何事后:) – karnok

before, sep, after = theString.rpartition("-") 

此拆分海峡关于最后一次出现“ - ”和你的回答将是可变的before

a='467.2-123-hdxdlfow' 
'-'.join(a.split('-')[:2]) 

如果你有确切2 ' - ',你可以做

a.rsplit('-',1)[0] 

你可以试试这个result = re.sub("([^-]*-[^-]*)(-.*$)", r"\1", '467.2-123-hdxdlfow')467.2-123

如果你是一切,但最后一个元素之后,我有修改spicavigo的答案排除最后一个元素。

a='467.2-123-hdxdlfow' 
'-'.join(a.split('-')[:-1])