Форматирование строки + сравнение с другой строкой, чтобы вместо конкретных "слов" могло стоять что угодно
Пишу телеграмм бота по поиску музыки Вк, хочу сделать метод, который бы при вводе команды /getartistsong [artist] [count] в телеграмме выводило список самых популярных песен (пока что). Не понимаю как сделать так, чтобы на месте первой заглушки могло стоять любое слово, а на месте второй - любое число. Форматирование с помощью $ и @ результата не дало.
if (e.Message.Text == "/getartistsong @ @") {
string[] myText = e.Message.Text.Split(' ');
Artist = myText[1];
Count = int.Parse(myText[2]);
var audios = MyVkApi.GetMusicSearch(Artist, Count);
foreach(var audio in audios) {
await Bot.SendTextMessageAsync(chatId:e.Message.Chat,
text:($ " > {audio.Artist} - {audio.Title}"),
parseMode:
ParseMode.Markdown);
}
}
Ответы (1 шт):
Автор решения: Scrappy Coco
→ Ссылка
Мне кажется, это должно быть так:
Regex regex = new Regex("^/getartistsong\\s+(?<artist>\\w+)\\s+(?<count>\\d+)");
Match match = regex.Match("/getartistsong hello 123");
if (match.Success) {
string artist = match.Groups["artist"].Value;
string count = match.Groups["count"].Value;
// TODO: ...
}
Подробное описание регулярок советую читать тут.