我有以下简单的字符串:

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将该组的内容放入输出中:

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

当然,由于没有小数部分,因此对5mm失败。最好使用字符类:
re.sub(r'(\d[\.\d]*)', r'\1 ', a)

如果您希望拒绝5..6之类的输入,则可以使用一些?限定词。

关于regex - python regex:在数字和字符之间放置空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54897565/

10-13 09:21