Я пытаюсь извлечь LHS и RHS линейного уравнения, используя сопоставление RegEx в Ptython.
exp="+1-3=x+2";
parts = re.search("(.*?)=(.*?)", exp);
left = parts.group(1);
right = parts.group(2);
Хотя значение left
зафиксировано правильно, значение right
пусто.
Я что-то делаю не так? разумеется, я новичок в Python.
Спасибо.
1 ответ
Сделайте правую часть жадной, убрав вопросительный знак:
parts = re.search("(.*?)=(.*)", exp);
В противном случае сопоставление останавливается сразу после =
.
Или используйте $
для привязки к концу строки.
Наконец, стоит отметить, что на самом деле вам здесь не нужно регулярное выражение:
left, _, right = exp.partition('=')
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.
left, right = exp.split('=')
?