我被困住了,这就是我向你寻求帮助的原因。
如果有
,我需要在数字前后的字符串中添加一个空格 前面没有数字,后面没有数字,前后没有空格。
这在示例中最为明显。
字符串:Adam20 Margaret30Tom 20 测试
预期结果:Adam 20 Margaret 30 Tom 20 test
我找到了这个部分解决方案,但我无法修改它,正则表达式是我的弱点。
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 的匹配内容。
