首页 > 解决方案 > 仅在 x 后面有数字时才替换

问题描述

我在python中有这个程序可以解决一个方程,但它只能使用“3 * x”而不是“3x”。因此,如果前面有数字,我希望正则表达式仅将“x”替换为“* x”。

考虑过使用 re.sub() 但不知道正则表达式应该是什么,如果它应该只替换 x 如果前面有一个数字。

所以我想让“2x + 8 = 3x + x”变成“2*x + 8 = 3*x + x”

感谢您的建议:)

标签: pythonregex

解决方案


我猜您可能想要设计一个类似于以下内容的表达式:

import re

regex = r"(?<=\d)([xyz])"
test_str = ("2x + 8 = 3x + x\n"
    "2x + 8y = 3z + x")

subst = "*\\1"

print(re.sub(regex, subst, test_str))

如果您想探索/简化/修改它,该表达式将在此演示的右上角面板中进行说明。


推荐阅读