Помогите с регуляркой.

vamfirius

Новичок
Нужно находить точное вхождение слов и словосочетаний. Пишу

reg= new RegExp('[^А-Яа-я0-9]'+key+'[^А-Яа-я0-9]','ig');

Не находит слова в начале предложения и вконце, а так же если чередуются находит через раз.
 

vamfirius

Новичок
Короче пишу сервис для определения плотности ключей в статье под НЧ. Надо чтобы регулярка находила все вхождения определённого ключа.

если пишу
key='текст';
reg= new RegExp('[^А-Яа-я0-9]'+key+'[^А-Яа-я0-9]','ig');
то из

текст текст текст текст текст

находит 2-ое и 4-ое слово

если пишу

reg= new RegExp('[^А-Яа-я0-9]?'+key+'[^А-Яа-я0-9]?','ig');

находит все даже если написано так

тексттексттексттексттекст

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

vamfirius

Новичок
Раздел по JavaScript напоминает вершину горы в тибете - уединение и тишина идеальные условия для медитации. Если кто-то всё же думает над этой проблемой, медитация помогла надо вот так -
PHP:
'(?:^|[^А-Яа-яЁё0-9])'+key+'(?![А-Яа-яЁё0-9])','ig'
 
Сверху