регулярные выражения: выделения русских и английских слов

Требуется выделять из текста русские и английские слова

Написал такую регулярярку:

\b([\w'а-яА-ЯёЁ]+)\b

Она выделяет английские слова, но русские игнорирует. Так же выделяюется английские слова внутри которых есть русские буквы. Вроде как дело в \b (ограничение слова), но как быть без нее?

Подскажите как корректнее модифицировать данное ругулярное выражение?


Ответы (1 шт):

Автор решения: UModeL

В последних версиях движков добавили гибкости регуляркам:

const rExp = /(?<!\p{L}\p{M}*|[\p{N}_])[a-z'а-яё]+(?![\p{L}\p{N}_])/gui;

const sTxt = 'Требуется select из текста русские & english words';

console.log(sTxt.match(rExp))

Решение взято отсюда.

→ Ссылка