powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Выделение результатов поиска с помощью регулярных выражений
17 сообщений из 17, страница 1 из 1
Выделение результатов поиска с помощью регулярных выражений
    #32793633
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?php
   setlocale (LC_CTYPE, "ru_RU");

   $string = "Это ПрИмЕр";//Получаю из БД
   
   $pattern = "прим";//получаю от пользователя

   $replacement = "<font color=blue><b>".$pattern."</b></font>"; //выделение шаблона цветом

   echo eregi_replace ($pattern, $replacement, $string);
?>
В результате выполнения выводит - примЕр (прим выделяет синим цветом, как и нужно).
Как сделать так, чтобы при выводе регистр из исходной строки не менялся? Т.е. выводило - ПрИмЕр, при этом ПрИм было синего цвета.
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32794025
1024byte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, можно не использовать реплейс вообще.
Привести строки к, например, нижнему регистру.
Искать все вхождения искомой подстроки, в оригинальной строке вставлять в соответвующие места '<font.......>' ну и соответсвенно закрывать тэг.
фактически замены тсроки нет, только вставка.
Способ не очень красивый зато работает :-)
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32794169
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо чтобы регистр исходной строки сохранялся.
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32794397
oracle_yzhas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поставить опцию игнорирования регистра при замене

в пхп - не знаю как. а в перле /i вроде :)
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32794517
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ внимательней читай вопрос
автор
Как сделать так, чтобы при выводе регистр из исходной строки не менялся? Т.е. выводило - ПрИмЕр, при этом ПрИм было синего цвета.
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32794529
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я и так использую функцию eregi_replace, которая не чувствительна к регистру. Но вся фишка в том, чтобы регистр исходной строки не менялся. Может кто сталкивался ?
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32794540
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. надо чтобы выводило следующее:
ПрИмЕр
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32794947
1024byte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дык я и написал, ищем подстроку в строке с измененным регистром. А вставляем текст в оригинал.
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32795241
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как это на РНР реализовать?
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32795338
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой момент указанного алгоритма вызывает затруднения?
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32796350
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как заменить без изменения регитстра.
Если использовать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   $string = "Это ПРИмер";//Получаю из БД
   
   $pattern = "приМ";//получаю от пользователя

   $replacement = "<font color=blue><b>".$pattern."</b></font>"; //выделение шаблона цветом

   echo eregi_replace ($pattern, $replacement, $string);
то на выходе будет приМер, а надо ПРИмер.
Как это реализовать на РНР?
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32796801
taj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
$str = "ПРиМер";
$reg = "/приМ/i";
$rep = "<b>\${0}</b>";
echo preg_replace($reg, $rep, $str);
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32797250
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну наконец меня поняли.
СПАСИБО taj.
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32797262
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственная проблема под линухом не хочет работать с русскими символами.
С английскими все работает.
Видимо дело в локалях. Хотя вроде и пишу:
Код: plaintext
1.
   setlocale (LC_ALL, "ru_RU");
Ну почему то не хочет работать. Если кто сталкивался подскажите.
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32797903
taj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тебе уже давал совет в твоем же топике - ru_RU.CP1251

--
Wo siang nide fanvan li ty le tang!(кит.:Я плюнул вам в рис, теперь вы умрёте!)
подпись сперта у перца с другого форума, но все равно красиво
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32798311
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не тебя поняли, это ты понял,)
Тебе до того предлагали менее изячный, тем не менее, рабочий алгоритм, делающий то же самое
...
Рейтинг: 0 / 0
Выделение результатов поиска с помощью регулярных выражений
    #32798351
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только что разобрался. У меня не была установлена локаль ru_RU.cp1251. Установил. Но загвоздка в том что в линухе по команде
Код: plaintext
1.
locale -a | grep ru
Выводит - ru_RU.cp1251. А на РНР надо указывать ru_RU. CP 1251. Иначе не работает.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Выделение результатов поиска с помощью регулярных выражений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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