我想删除python中字符串中数字之间的所有空格.例如,如果我有
my_string = "my phone number is 12 345 6789"
Run Code Online (Sandbox Code Playgroud)
我希望它成为
my_string = "my phone number is 123456789"
Run Code Online (Sandbox Code Playgroud)
我想我可以为每个号码做到这一点:
for i in range(10):
my_string = my_string.replace(str(i)+" ",str(i))
Run Code Online (Sandbox Code Playgroud)
但这不是一个聪明有效的解决方案.有什么想法吗?
Mor*_*app 16
只需使用正则表达式!现在支持可变数量的空格.
import re
my_string = "my phone number is 12 345 6789"
my_string = re.sub(r'(\d)\s+(\d)', r'\1\2', my_string)
Run Code Online (Sandbox Code Playgroud)
这是另一种正则表达式方式,使用后视/前视并直接删除空格,而不是取出数字并将它们放回原处:
>>> re.sub('(?<=\d) (?=\d)', '', my_string)
'my phone number is 123456789'
Run Code Online (Sandbox Code Playgroud)
我喜欢它,但不得不承认它有点长和慢:
>>> timeit(lambda: re.sub('(?<=\d) (?=\d)', '', my_string))
1.991465161754789
>>> timeit(lambda: re.sub('(\d) (\d)', '$1$2', my_string))
1.82666541270698
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4916 次 |
| 最近记录: |