Это регулярное выражение поможет. Проверьте это ниже.
const regex = /{(.+?)}/g;
const string = '!add {game}{game description}{game status}';
const args = [];
let match;
while (match = regex.exec(string)) args.push(match[1]);
console.log(args);
Пояснение:
Чтобы увидеть, как работает регулярное выражение и что делает каждый символ, посмотрите здесь . Что касается цикла while
, он повторяет каждое совпадение из регулярного выражения и помещает строку из первой группы захвата в массив аргументов.
Небольшое, но достойное примечание:
.
не соответствует разрывам строк, поэтому аргументы, разбитые на несколько строк в сообщении, не будут включены. Чтобы предотвратить это, вы можете заменить любой символ новой строки пробелом перед использованием регулярного выражения.