Помогите написать ругулярку "все буквы русского алфавита, за исключением группы букв "от"
Скажем, есть строка абвгдеотто. Должно быть 2 совпадения: абвгде и то, от сматчиться не должен. Я думал, что должен сработать [А-Яа-я[^(от)]]=, но почему-то нет. Я проверяю на regex101, синтаксис JS.
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Вы можете, как обычно в таких случаях, найти то, что вам не нужно, и найти и захватить то, что вам нужно.
const results = 'абвгдеотто'.matchAll(/от|((?:(?!от)[А-ЯЁа-яё])+)/g)
console.log( Array.from(results, x => x[1]).filter(y => y !== undefined) )
Здесь от|((?:(?!от)[А-ЯЁа-яё])+) находит от или одну и более букв, которая не является начальной буквой подстроки от (захватывая данную последовательность в подмаску №1).
Array.from(results, x => x[1]).filter(y => y !== undefined) оставляет только те значения, которые были захвачены.