我有一个带有两个“-”的字符串。
467.2-123-hdxdlfow
我想要删除第二个连字符后面的全部内容,以便得到“467.2-123”。最好的方法是什么?
before, sep, after = theString.rpartition("-")
这将字符串沿着最后一个"-"符号进行分割,你的答案将会是变量before
。
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'
如果你需要的是除了最后一个元素之外的所有内容,我修改了spicavigo的答案来排除最后一个元素。
a='467.2-123-hdxdlfow'
'-'.join(a.split('-')[:-1])
a='467.2-123-hdxdlfow'
'-'.join(a.split('-')[:2])
a.rsplit('-',1)[0]
尝试这个正则表达式
([^-]*-[^-]*)-.*
并询问第一个捕获组(示例中的(...)
)的结果。
result = re.sub("([^-]*-[^-]*)(-.*$)", r"\1", '467.2-123-hdxdlfow')
,结果是 467.2-123
。该代码与编程有关。