python:在一个字符后分割字符串

时间:2011-10-05 11:52:04

标签: python regex string

我有两个“ - ”的字符串

467.2-123-hdxdlfow

我想在第二个“ - ”后删除所有内容,以便得到“467.2-123”。这样做的最佳方式是什么?

7 个答案:

答案 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