Как правильно работать с регулярными выражениями?
Как сделать правильное регулярное выражение, чтобы массив находил (res[1]) объект был только 'Выполни мою команду' а не 'команду'. массив res[0] Будет иметь только одно слово 'сэр', а не 'сэр, выполни мою команду'
фраза для str может меняться. Самое главное, чтобы первое слово являлось первым объектом, а после 1 слова пойдут на 2 объект
Должно быть только 2 объекта.
Команда: Сэр
1 объект: Сэр
2 объект: выполни мою команду
let str = 'Сэр, выполни мою команду';
let res = str.match(/^(?:.*)\s(.*)/i, '!' );
console.log(res)
Ответы (3 шт):
Автор решения: user2749279
→ Ссылка
Как то так (\w+)\s(.*) в первой группе любое слово потом пробел потом все остальное
Автор решения: user2749279
→ Ссылка
Возможно проблемы с распознаванием русских букв в шаблоне \w. Попробуйте ^(.+?)\s(.*)$
Автор решения: vp_arth
→ Ссылка
Если нужно выделить все слова:
const s = 'сэр, выполни мою команду';
const r = s.match(/\p{L}+/ug);
console.log(r);
console.log(r[0], r.slice(1).join(' '));
Если в соответствии с ТЗ:
const s = 'сэр, выполни мою команду';
const r = s.match(/(\p{L}+)\P{L}+(.*)/u);
console.log(r[1]);
console.log(r[2]);
