Python RegEx匹配异常

时间:2013-03-21 22:19:14

标签: python regex

我试图使用Ptython中的RegEx匹配来提取线性方程的LHS和RHS。

exp="+1-3=x+2";
parts = re.search("(.*?)=(.*?)", exp);
left = parts.group(1);
right = parts.group(2);

虽然正确捕获了left的值,但right的值为空。

我做错了吗?不用说我是Python的新手。

感谢。

1 个答案:

答案 0 :(得分:4)

通过删除问号使右侧贪婪:

parts = re.search("(.*?)=(.*)", exp);

否则匹配会在=之后停止。

或者,使用$锚定到字符串的末尾。

最后,值得注意的是,您实际上并不需要正则表达式:

left, _, right = exp.partition('=')