Python ::删除所有出现的内容,直到第一个空格

时间:2017-02-13 02:47:26

标签: python string

如何删除字符串中第一个空格的所有匹配项,以便:

strings = ["1234 zoocore", "4356 00's punk"]

成为:["zoocore", "00's punk"]

我试过正则表达式:

for s in strings:
    new_s = re.sub(r'\d+','', s)

但也会删除00',这是我不想要的。

2 个答案:

答案 0 :(得分:10)

您可以将str.splitmaxsplit参数一起使用:

>>> strings = ["1234 zoocore", "4356 00's punk"]
>>> [s.split(None, 1)[1] for s in strings]
['zoocore', "00's punk"]

如果您的字符串不包含空格,则可以使用-1作为索引:

>>> strings = ["1234 zoocore", "4356 00's punk", "rock"]
>>> [s.split(None, 1)[-1] for s in strings]
['zoocore', "00's punk", 'rock']

答案 1 :(得分:1)

您的错误在于您没有在字符串的开头锚定匹配并且您没有包含空格。这是一个固定版本:

>>> [re.sub(r'^\d* ', '', s) for s in strings]
['zoocore', "00's punk"]

另一种方法是找到空格(如果有的话),然后切片。

>>> strings = ["1234 zoocore", "4356 00's punk", "rock"]
>>> [s[s.find(' ') + 1:] for s in strings]
['zoocore', "00's punk", 'rock']
相关问题