Подсобите с регуляркой. Нужно математическое выражение, например:
аb+4*(-x-222*b)+cbd
разбирать так, чтобы отдельно в лексемы попадали символьные переменные(из одного и больше символов, без цифр), цифровые константы из одной и более цифр и отдельно +, -, * ,(,).
Выражения могут быть на входе абсолютно разные по длине, набору пересчисленных операторов, с разными константами и переменными.
Это вообще возможно? Или тут нужно писать свою функцию?
1. Perun - 10 Февраля, 2021 - 19:53:34 - перейти к сообщению
2. dcc0 - 11 Февраля, 2021 - 01:06:22 - перейти к сообщению
Доброго! Что-то типа такого? https://rextester[dot]com/CBOUY47630
В вашем примере символ "а" , видимо, русский символ.
P.s. на всякий случай за ошибки извиняюсь, с телефона.
В вашем примере символ "а" , видимо, русский символ.
P.s. на всякий случай за ошибки извиняюсь, с телефона.
3. Perun - 11 Февраля, 2021 - 08:41:48 - перейти к сообщению
dcc0 пишет:
Что-то типа такого?
Почти..
Все лексемы должны быть в одном одномерном массиве и идти подряд, как они идут в выражении. Вместо одной лексемы *(-, должно быть три разных.
Т.е. должно быть:
[
ab,
+,
4,
*,
(,
-,
x,
-,
222,
*,
b,
),
+,
cbd,
]
4. dcc0 - 11 Февраля, 2021 - 11:10:39 - перейти к сообщению
Output:
CODE (html):
скопировать код в буфер обмена
скопировать код в буфер обмена
- Array
- (
- [0] => Array
- (
- [0] => ab
- [1] => +
- [2] => 4
- [3] => *
- [4] => (
- [5] => -
- [6] => x
- [7] => -
- [8] => 222
- [9] => *
- [10] => b
- [11] => )
- [12] => +
- [13] => cbd
- )
- )
Так?