删除python中字符串中数字之间的空格

时间:2016-07-28 15:31:41

标签: python string

我想删除python中字符串中数字之间的所有空格。例如,如果我有

my_string = "my phone number is 12 345 6789"

我希望它成为

my_string = "my phone number is 123456789"

我想我可以为每个数字做到这一点:

for i in range(10):
   my_string = my_string.replace(str(i)+" ",str(i))

但这不是一个聪明有效的解决方案。有什么想法吗?

2 个答案:

答案 0 :(得分:14)

只需使用正则表达式!现在支持可变数量的空格。

import re
my_string = "my phone number is 12 345 6789"
my_string = re.sub(r'(\d)\s+(\d)', r'\1\2', my_string)

答案 1 :(得分:2)

只是另一种正则表达方式,使用look-behind / ahead并直接删除空格而不是取出数字并将它们放回:

>>> re.sub('(?<=\d) (?=\d)', '', my_string)
'my phone number is 123456789'

我喜欢它,但不得不承认它有点长而且慢:

>>> timeit(lambda: re.sub('(?<=\d) (?=\d)', '', my_string))
1.991465161754789
>>> timeit(lambda: re.sub('(\d) (\d)', '$1$2', my_string))
1.82666541270698