У меня есть бот, который реагирует на ввод данных пользователем, но перед тем, как выбрать, что делать, ему нужно выполнить строку через Regex и выбрать соответствующую команду в зависимости от того, было ли совпадение успешным. Например,
if (Regex.Match(...,.....).Success)
{
// Do #1
}
else if (Regex.Match(...,.....).Success)
{
// Do #2
}
Это не масштабируется и не поддерживается в любом месте выше 5 возможных совпадений регулярных выражений. Какой способ создать класс, который может помочь мне решить эту проблему?
Может быть, класс с именем CommandDictionary
, который сканирует строки на предмет совпадения, генерирует список команд, соответствующих каждому успешному совпадению с регулярным выражением, а затем выбирает команду, связанную с наивысшим приоритетом? Например, если «Hello» соответствует «Greet» и «Ignore», но «Greet» имеет более высокий приоритет, ответом будет «Do Greet».