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

标签 python regex

我陷入困境,这就是为什么我向你寻求帮助。
如果有的话,我需要在数字前后的字符串中添加一个空格
前面没有数字,后面没有数字,前后没有空格。
这在示例中最为明显。

字符串: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/

相关文章:

Java 正则表达式 "\\d[a-zA-z]?"

python - 使用 pymongo 在引用/链接的 MongoDB 文档中查找

php - 使用 PHP 去除整个 html 链接(包括文本)

sql - 正则表达式来确定合法的 SQL?

python - 将 get_feature_names 添加到 ColumnTransformer 管道

python - 将\n\t 等转义字符替换为\\t ,\\n

python - 正则表达式总是匹配最后一个组子句

python - Django OneToOneField 默认值

python - 使用python,选项和注意事项在文件读/写中的资源使用

python - 使用 spotipy 提取艺术家流派和歌曲发布日期