Я пытаюсь найти арифметические выражения в текстовых строках.
Возможное арифметическое выражение:
1/3 + 1/4
cos(30) + 25*3,75
sqrt(5) + sin(45)
5 != 6
2**4 + 100.000 =
(2^3)^4
sqrt((0,25*8)/2)
3e4 - 500
Я создал регулярное выражение и использовал символ |
между блоками.
pattern = '((\s*(sqrt|a?sin|a?cos|a?tan|abs|log|log10|exp)?\s*)* | (\s*[e0-9,.()\-]+\s*)* | (\spi\s*)* | (\s*[-+*/%^<>!=]*\s*)*)(\s*\=?\s*)?'
Что я действительно хочу, так это чтобы все блоки можно было использовать взаимозаменяемо в любом порядке.
Как я могу это сделать? Он не работает с использованием символа |
.