Python:在字符后拆分字符串

4

我有一个带有两个“-”的字符串。

467.2-123-hdxdlfow

我想要删除第二个连字符后面的全部内容,以便得到“467.2-123”。最好的方法是什么?
7个回答

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

这将字符串沿着最后一个"-"符号进行分割,你的答案将会是变量before


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

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

我最喜欢这个,因为它适用于任何数量的破折号 - 它将去掉最后一个和其后的任何内容 :) - karnok

2

如果你需要的是除了最后一个元素之外的所有内容,我修改了spicavigo的答案来排除最后一个元素。

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

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

如果您恰好有2个“-”,您可以执行以下操作:
a.rsplit('-',1)[0]

0

尝试这个正则表达式

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

并询问第一个捕获组(示例中的(...))的结果。


0
你可以尝试这样做:result = re.sub("([^-]*-[^-]*)(-.*$)", r"\1", '467.2-123-hdxdlfow'),结果是 467.2-123。该代码与编程有关。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接