Заменить слова в тексте, которые не находятся между тегов ,
Нужно в тексте определенные слова сделать ссылками.
С помощью preg_replace это делается без труда, но нужно заменить только те слова, которые не являются уже ссылками и которые не стоят между тегов h1-h6, плюс к этому всему нужно в тексте заменить только первое вхождение каждого слова (в тексте может быть много слов-замен)
Помогите составить регулярку, не получается самому!
~(?:(?:<h\\d>.+?<\/h\\d>)?(?:<a\\s*href=[^>]+>.+?>)\\K(\\s*\bслово\b\\s*))~uix
Многие переменные фильтруются для безопасности
напишите где конкретно на сайте?
На тестовом сайте на iCMS 2. Получается на любом)
Многие переменные фильтруются для безопасности
Как отключить для проверки?
— Напишите где конкретно на сайте?
— На тестовом сайте на iCMS 2. Получается на любом)
Вы уверены что это конкретика? И теперь всем понятно куда вы эту строку вставляете?
НикакКак отключить для проверки?
$text = 'Слово не воробей'; $q = 'Замена'; $reg = '~(?:(?:<h\\d>.+?<\/h\\d>)?(?:<a\\s*href=[^>]+>.+?>)\\K(\\s*\bслово\b\\s*))~uix'; echo $result;
Полагаю, замена не производится потому что ошибки в шаблоне.
Попытался разобрать его, но моего опыта не хватило может кто поумнее подскажет...
Я даже понятия не имею зачем тут \\K и что он значит в регулярках
А что за онлайн редактор в котором это работало?
\K — сброс начала совпаденияЯ даже понятия не имею зачем тут \\K и что он значит в регулярках
easyregexp.ru/constructorА что за онлайн редактор в котором это работало?
Так может как раз в нем дело? Не все библиотеки его поддерживают\K — сброс начала совпадения
qaru.site/questions/3773/support-of-k-in-regex
Управляющая последовательность \K поддерживается несколькими двигателями, языками или инструментами, такими как:Так может как раз в нем дело? Не все библиотеки его поддерживают
qaru.site/questions/3773/support-of-k-in-regex
PHP (начиная с 5.2.4)
Испытайте в другом редакторе regex101.com
ДА в редакторах работает, а вот на сайте или хотя бы здесь, нет!Испытайте в другом редакторе regex101.com