Как разделить значения в списке по скобкам, используя регулярное выражение в Python? - PullRequest
1 голос
/ 24 марта 2020

Что я подразумеваю под разделением по значению, предположим, что список имеет 1 строковое значение: mylist = ["3+4(5-3)-(9+4)"]

Я хочу разделить значения, чтобы они были отдельными строковыми значениями, такими как: mylist = ["3+4", "(", 5-3", ")", "-", "(", "9-4", ")"]

Пока что приведенный ниже код делает то же самое, но разделяет его между операторами, поэтому, если я введу ["3+3"], он выведет

mylist = ["3", "+", "3"]

import re
mylist = input("Equation: ")
mylist = re.compile("(?<=\d)([- + / *])(?=\d)").split(mylist)

I ' Я просто пытаюсь сделать так, чтобы он делал то же самое с круглыми скобками, потому что добавление круглых скобок в параметры сбивает с синтаксисом регулярных выражений.

1 Ответ

5 голосов
/ 24 марта 2020

Попробуйте это:

>>> import re
>>> r = re.compile("([()])")
>>> r.split("abc(def(ghi)jkl")
['abc', '(', 'def', '(', 'ghi', ')', 'jkl']
>>> 

Внешние скобки в регулярном выражении приводят к тому, что разделители сохраняются как элементы списка разделения.

...