Regex, Как сделать поиск всех совпадений слов?

Для того чтобы найти все совпадения слов в JavaScript с использованием регулярных выражений (regex), вы можете воспользоваться методом match() встроенного объекта String или методом exec() встроенного объекта RegExp.

Метод match() принимает в качестве аргумента регулярное выражение и возвращает массив всех совпадений. Например, если у вас есть строка "Hello, how are you?" и вы хотите найти все слова, вы можете использовать следующий код:

let str = "Hello, how are you?";
let regex = /w+/g;
let matches = str.match(regex);
console.log(matches); // ["Hello", "how", "are", "you"]

В данном случае регулярное выражение /\w+/g ищет все непрерывные последовательности символов (\w+), которые являются словами, и флаг g указывает на поиск всех совпадений.

Метод exec() работает немного иначе: он находит первое совпадение и возвращает массив с информацией о совпадении. Также, при наличии флага g, он сохраняет внутреннее состояние, чтобы искать следующие совпадения. Если совпадений больше нет, он возвращает null. Чтобы найти все совпадения слов, можно использовать следующий код:

let str = "Hello, how are you?";
let regex = /w+/g;
let matches = [];
let match;

while ((match = regex.exec(str)) !== null) {
  matches.push(match[0]);
}

console.log(matches); // ["Hello", "how", "are", "you"]

В этом примере мы используем цикл while, чтобы вызывать метод exec() до тех пор, пока он находит совпадения. Каждый раз, когда он находит совпадение, мы добавляем это совпадение в массив matches. Когда больше нет совпадений, цикл завершается и мы получаем массив всех найденных слов.

Оба этих метода полезны для поиска всех совпадений слов, и вы можете выбрать подход, который наиболее подходит для вашего случая использования.