在数字之前和之后添加空格(正则表达式)

时间:2019-12-14 18:55:55

标签: python regex

我被困住了,这就是为什么我要你寻求帮助。
我需要在数字前后的字符串中添加一个空格,如果有的话
在它前面没有数字,在它后面也没有数字,前后没有空格。
最好在示例中看到。

字符串 Adam20 Margaret30Tom 20测试
预期结果亚当20玛格丽特30汤姆20测试

我找到了这个局部解决方案,但是我无法修改它,正则表达式是我的弱点。

import re
line = "Adam20 Margaret30Tom 20 test"
x=re.sub(r'(?<=[0-9])(?=[^\s])', r' ', line)
print(x)
>> Adam2 0 Margaret3 0 Tom 2 0 test*<br/>

感谢帮助。

1 个答案:

答案 0 :(得分:2)

使用捕获组,并在替换中引用它:

>>> line = "Adam20 Margaret30Tom 20 test"
>>> import re
>>> re.sub(r' ?(\d+) ?', r' \1 ', line)
'Adam 20 Margaret 30 Tom 20 test'

说明:?匹配0或1个空格,(\d+)匹配1个或多个数字并将其捕获到组1,而\1在第1组中使用匹配的内容替换。