Определение, является ли строка математической формулой? - PullRequest
0 голосов
/ 26 апреля 2011

Итак, я обрабатываю математические формулы из строк, используя алгоритм шунтирования.Я пропускаю каждую строку через функцию, которая обрабатывает определенные строки в значения, но иногда я проверяю строки, которые являются просто строками, которые должны быть просто пропущены - читай, пропустите проход shunting-yard.Должен ли я просто использовать регулярное выражение для проверки всех символов и чисел?Или есть более простой способ проверить это?Я думаю, что инверсия будет проверять, остались ли еще какие-либо буквы в строке?

1 Ответ

0 голосов
/ 27 апреля 2011

Хотя я уверен, что есть лучший ответ, я решил использовать следующее, пока не появится что-то лучшее, я работаю в AS3:

if ( !String( value ).match( /[a-zA-Z]/ ) && !String( value ).match( /^(-?\d+)$/ ) && String( value ).match( /[()\\*+-]/ ) )
{
    value = MathParser.parse( value );
}

Первое выражение подтверждает, что естьэто не символы - моя реализация маневрового двора не обрабатывает специальные символы или операции, она просто выполняет базовую математику, поэтому, если остаются какие-либо символы, что-то не так.

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

И, наконец, я проверяю, что значение не является просто отдельным числом положительного или отрицательного значения.

Комментарии для улучшения приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...