【发布时间】:2020-12-27 19:33:08
【问题描述】:
我想替换字符串中的某些字符,如下所示:
输入字符串:
s = "1kgbutter2kilochilli30gmssalt"
输出字符串:
s = " 1kg butter 2kilo chilli 30gms salt"
我已经尝试使用re.sub,如下所示,但没有成功。
re.sub(r"^[0-9]*(kg|kilo|gm)s$", "*how do i add spaces if exp matches*", s)
【问题讨论】:
-
如果只有1个
gm怎么办?那么,s可能是下一个单词的一部分。 -
只有 1gms。's' 不会出现在下一个单词中。
-
然后使用
re.sub(r'\d+(?:kg|kilo|gm)s?', r' \g<0> ', text).strip()