我有一个"foo-bar-1.23-4“形式的字符串,我需要在第一个假设后面跟着一个数字进行拆分,这样结果就是'foo-bar','1.23-4‘。我尝试过以下几种方法:
>>> re.split('-\d', 'foo-bar-1.23-4', 1)
['foo-bar', '.23-4']和
>>> re.split('-(\d)', 'foo-bar-1.23-4', 1)
['foo-bar', '1', '.23-4']结果不是最好的。有没有一行代码可以让我得到我想要的东西,而不需要在最后一个元素中使用分隔符?
发布于 2009-06-25 00:22:51
你已经很接近了,试试这个:
re.split('-(?=\d)', 'foo-bar-1.23-4', 1)我使用positive lookahead来实现这一点--基本上,我匹配的是后面紧跟数字字符的破折号。
发布于 2009-06-25 00:24:29
re.split('-(?=\d)', 'foo-bar-1.23-4', 1)使用lookahead,这正是Andrew所做的,但比我快了一分钟……:-)
发布于 2009-06-25 00:27:09
积极的前瞻会起作用吗?
re.split('-?=\d', 'foo-bar-1.23-4', 1)不确定你是否需要围绕着前视,但试一试。
https://stackoverflow.com/questions/1041600
复制相似问题