我陷入困境,这就是为什么我向你寻求帮助。
如果有的话,我需要在数字前后的字符串中添加一个空格
前面没有数字,后面没有数字,前后没有空格。
这在示例中最为明显。
字符串:Adam20 Margaret30Tom 20 测试
预期结果:Adam 20 Margaret 30 Tom 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/>
感谢您的帮助。
最佳答案
使用捕获组,并在替换中引用它:
>>> 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 组的匹配内容。
关于python - 在数字前后添加空格(正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59338205/