Мне нужно регулярное выражение, чтобы проанализировать строку, содержащую дроби и операцию [+, -, *, or /]
, и вернуть 5-элементный кортеж, содержащий числители, знаменатели и операцию, используя функцию findall
в re модуль.Regex для выражения в выражениях с использованием модуля python re
Пример: str = "15/9 + -9/5"
Выход должен формы [("15","9","+","-9","5")]
я смог придумать это:
pattern = r'-?\d+|\s+\W\s+'
print(re.findall(pattarn,str))
Который производит выход ["15","9"," + ","-9","5"]
. Но после того, как я так долго возился с этим, я не могу получить это в 5-элементный кортеж, и я не могу сопоставить операцию, не совпадающую с белыми пространствами вокруг него.
Не '[tuple ([" 15 "," 9 "," + "," -9 "," 5 "])]' yield '[(" 15 "," 9 "," + "," -9 "," 5 ")]'? Вам также нужно избавиться от пробелов? Если это так, '[tuple ([x.replace ('', '') для x в [" 15 "," 9 "," + "," -9 "," 5 "]])]' дает '' [(«15», «9», «+», «-9», «5»)] '. – dorverbin