x="3x^2+2x-1"
x=re.split(r"[^]|([-])|[+]", x)
print(x)
#returns: ['3x', None, '2', None, '2x', '-', '1']
我认为它应该返回类似['3x','2','2x','-','1']的内容。对不起,我肯定我只是误会了。谢谢!
用于拆分的正则表达式模式中有一个捕获组,但它只包括减号运算符。只需在捕获组内的角色类([^*/+-])
上进行拆分。这将在任何运算符上进行拆分,但也将在输出列表中包括该运算符。
x = "3x^2+2x-1"
x = re.split(r"([^*/+-])", x)
print(x) # ['3x', '^', '2', '+', '2x', '-', '1']
x = [y for y in re.split(r"[^]|([-])|[+]", x) if y != None]
我不是RegEx向导,但你可以删除所有Nones。