powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста с регулярным выражением
3 сообщений из 3, страница 1 из 1
Помогите, пожалуйста с регулярным выражением
    #37796010
Chainiko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На сайте WordPress осуществляется поиск с подсветкой с использованием плагина relevanssi
В коде содержится такая строчка:

Код: php
1.
$excerpt = preg_replace("/($term)(?!([^<]+)?>)/iu", '*[/' . '\\1' . '\]*', $excerpt);



Которая заменяет текст например с "убиваю Pulemetom мух" на "убиваю *[/Pulem\]*etom мух" если $term равен 'Pulem' .
Но если $term равен 'убив' , то возвращаемая строка не изменяется и равна "убиваю Pulemetom мух" .

В ходе экспериментов удалил фрагмент (?!([^<]+)?>) из регулярного выражения, т.е. оно стало таким:

Код: php
1.
$excerpt = preg_replace("/($term)/iu", '*[/' . '\\1' . '\]*', $excerpt);



теперь русский язык (UTF-8) работает, т.е. при $term равном 'убив' из строки "убиваю Pulemetom мух" получаю "*[/убив\]*аю Pulemetom мух" , т.е. работает как надо, но переживаю из-за удаленного фрагмента.

Подскажите пожалуйста, для чего мог бы быть предназначен фрагмент регулярного выражения (?!([^<]+)?>) ? Чего я мог сломать или лишиться?
...
Рейтинг: 0 / 0
Помогите, пожалуйста с регулярным выражением
    #37796040
Chainiko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел, чего я лишился: Matching A Word / Characters Outside Of Html Tags .

т.е. поиск и замена осуществляется вне тэгов HTML:

Код: php
1.
2.
3.
4.
5.
6.
<?php
    $str = "word <a href=\"word\">word</word>word word";
    $str = preg_replace("/word(?!([^<]+)?>)/i","repl",$str);
    echo $str;
    # repl <word word="word">repl</word>
?>



Но у меня с этим фрагментом не работает для русского языка :( .
...
Рейтинг: 0 / 0
Помогите, пожалуйста с регулярным выражением
    #37796050
Chainiko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Повезло, чудак-человек разработчик - использовал фичу с вышеуказанного сайта, а сам осуществлял поиск и замену уже в предварительно обработанном - с исключённым из текста хтмлом. В итоге недостаток - результат поиска - фрагмент текста в plain-text с подсветкой результатов поиска.

Переделывать на результат поиска как форматированный HTML будет уж очень накладно...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста с регулярным выражением
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]