Я бы пошел с хорошей смешанной сумкой из всех.
Очевидно, вам придется санировать ввод. Убедитесь, что там нет никаких неприятных вещей, в зависимости от того, куда будут вводиться данные для предотвращения внедрения SQL, XSS, CSRF и т. Д. *
Но когда ваш ввод чистый, вы можете использовать регулярное выражение, которое отлавливает те, которые предназначены для команды, и получает все необходимые подсовпадения (параметры команды и т. Д.), А затем имеет какой-то оператор диспетчера-переключателя или подобное.
Здесь действительно нет наилучшей практики прикрытия, за исключением того, что всегда всегда и вчетверо всегда гарантируется, что пользовательский ввод очищен. Кроме того, придерживайтесь того, что кажется наиболее подходящим для вашего случая.
Очевидно, что есть те, кто говорит, что если у вас есть проблема, и вы думаете об использовании reg exps для решения указанной проблемы, у вас есть две проблемы, но, если их использовать осторожно, они самые лучшие. Просто помните, что regexp-монстры могут очень быстро читать с очень плохой читабельностью.