python regex:在数字和字符之间放置空格

时间:2019-02-27 03:29:36

标签: regex python-3.x

我有以下简单的字符串:

a = "total net band width 13.5mm. 12.25mm 13.5mm 5mm 11.5mm speed"

如果第一个是数字,第二个是字母,如何在两个连续字符之间插入空格?

这是我到目前为止使用python regex尝试过的内容:

    re.sub('\d+\.\d+', " ", a)

所需的输出:

"total net band width 13.5 mm. 12.25 mm 13.5 mm 5 mm 11.5 mm speed"

1 个答案:

答案 0 :(得分:1)

使用()创建一个捕获组。

然后使用\1将该组的内容放入输出中:

re.sub(r'(\d+\.\d+)', r'\1 ', a)

当然,由于没有小数部分,因此在5mm上失败。最好使用字符类:

re.sub(r'(\d[\.\d]*)', r'\1 ', a)

如果您希望拒绝5..6之类的输入,那么一些?限定词将是合适的。