Если у вас всегда будет такая строка (с 3 частями), то этого достаточно:
String str= "21*90'89\"";
String between = str.split("\"|'")[1];
Самый простой способ сделать это состоит в том, чтобы пользователь разделял каждый аргумент запятой. Хотя это создает проблему, когда пользователь не может использовать запятую в своей текстовой части. Так что, если это не вариант, другой способ сделать это - получить содержимое сообщения и начать с его удаления. Вы начинаете с захвата части времени с помощью регулярного выражения. Затем вы ищите упоминания о каналах и удаляете их. То, что у вас осталось, должно быть только текстом.
Ниже приведен некоторый (не проверенный) код, который может привести вас в правильном направлении. Попробуйте и дайте мне знать, если у вас есть какие-либо проблемы
let msg = {
content: "1d 3h 45m 52s I feel like 4h would be to long <#222079895583457280>",
mentions: {
channels: ['<#222079895583457280>']
}
};
// Mocked Message object for testing purpose
let messageObject = {
mentions: {
CHANNELS_PATTERN: /<#([0-9]+)>/g
}
}
function handleCommand (message) {
let content = message.content;
let timeParts = content.match(/^(([0-9])+[dhms] )+/g);
let timePart = '';
if (timeParts.length) {
// Get only the first match. We don't care about others
timePart = timeParts[0];
// Removes the time part from the content
content = content.replace(timePart, '');
}
// Get all the (possible) channel mentions
let channels = message.mentions.channels;
let channel = undefined;
// Check if there have been channel mentions
if (channels.length) {
channel = channels[0];
// Remove each channel mention from the message content
let channelMentions = content.match(messageObject.mentions.CHANNELS_PATTERN);
channelMentions.forEach((mention) => {
content = content.replace(mention, '');
})
}
console.log('Timepart:', timePart);
console.log('Channel:', channel, '(Using Discord JS this will return a valid channel to do stuff with)');
console.log('Remaining text:', content);
}
handleCommand(msg);
Для messageObject.mentions.CHANNEL_PATTERN
посмотрите эта ссылка