如何在字符串末尾去除嘈杂的图案?

时间:2016-01-12 02:06:45

标签: python string python-2.7 python-3.x

我有一个字符串列表(len 10000),其中一些看起来像

Belin (*) 9
München 12

我想在字符串的末尾删除数字和(*)以获得纯城市名称

Berlin
München

我可以在这上面使用rstrip吗?

1 个答案:

答案 0 :(得分:2)

使用正则表达式函数re.sub删除带有额外前导空格(\(\*\))的(*)(\d+)和数字(\s*):

>>> cities = [
...     'Belin (*) 9',
...     'München 12',
...     'Los Angeles 9'
... ]
>>> [re.sub('\s*\(\*\)|\s*\d+', '', city) for city in cities]
['Belin', 'München', 'Los Angeles']

使用str.rstrip,您需要指定要删除的所有字符:

>>> [city.rstrip(' 0123456789(*)') for city in cities]
['Belin', 'München', 'Los Angeles']