Python 查找数学表达式中的所有变量

Python 查找数学表达式中的所有变量,python,regex,Python,Regex,我有一个数学表达式,例如:“x45+x3/2+ln(x1-x45)”,我想创建一个函数,名为 find_variables(expression) 它应该返回表达式中包含的变量列表,如果变量在表达式中出现两次或两次以上,则只出现一次。这里,L=[“x45”、“x3”、“x1”] 我想我可能会使用这种正则表达式: pattern = re.compile(x\d+) 但我不知道如何匹配然后储存结果。有人能帮我吗 提前感谢您设置([x.replace('/','')为x在re.findall(r

我有一个数学表达式,例如:“x45+x3/2+ln(x1-x45)”,我想创建一个函数,名为

find_variables(expression)
它应该返回表达式中包含的变量列表,如果变量在表达式中出现两次或两次以上,则只出现一次。这里,L=[“x45”、“x3”、“x1”]

我想我可能会使用这种正则表达式:

pattern = re.compile(x\d+)
但我不知道如何匹配然后储存结果。有人能帮我吗


提前感谢您

设置([x.replace('/','')为x在re.findall(r'x\d+(?:/\d+),表达式)])
L=[“x45”,“x32”,“x1”]
?第二个应该是
x3
,因为它是被二除的变量。好的,谢谢你,只是我不理解所有的元素,主要是为什么要做“x.replace(“/”,”),但是如果你需要
x3
而不是
x32
,你所需要的就是
re.findall
+
set