/ / Python RegEx відповідна аномалія - ​​python, regex

Python RegEx відповідна аномалія - ​​python, regex

Я намагаюся витягувати LHS і RHS лінійного рівняння, використовуючи відповідність RegEx у Pththon.

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

хоча вартість left правильно схоплено, значення right пусто.

Чи є щось, що я роблю неправильно? Потрібно сказати, що я новачок у Python.

Дякую.

Відповіді:

4 для відповіді № 1

Зробіть праву сторону жадібною, видаливши знак питання:

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

Інакше відповідність зупиняється відразу після =.

Крім того, використовуйте $ прив'язати до кінця рядка.

Нарешті, варто зауважити, що ви не потребуєте регулярного вираження тут:

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