我有以下简单的字符串:
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"
答案 0 :(得分:1)
使用(
和)
创建一个捕获组。
然后使用\1
将该组的内容放入输出中:
re.sub(r'(\d+\.\d+)', r'\1 ', a)
当然,由于没有小数部分,因此在5mm
上失败。最好使用字符类:
re.sub(r'(\d[\.\d]*)', r'\1 ', a)
如果您希望拒绝5..6
之类的输入,那么一些?
限定词将是合适的。