![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 1 Всего: 29 |
Пожалуйста, помогите решить вопрос.
Допустим есть массив строк, которые надо как-то выделить в тексте. При этом после выделения этот кусок текста не должен обрабатываться повторно. Мне эту задачу оказалось решить не по силам. Вот к чему я пришёл:
Поставил "[^x]" в качестве ограничителя замены, но при этом заменяется последовательность символов, соответсвующая "x" - в данном случае пробел, а если пробела нет, то замена и вовсе не срабатывает. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Вообще-то, повторный проход регулярки идет либо при специальном шаблоне (рекурсивном), либо при модификаторе e это можно организовать.
Покажи на наглядном примере из чего что ты хочешь получить и какая версия PHP. |
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 1 Всего: 29 |
Версия PHP - 4.4.2.
Я хочу сделать множественную подсветку результатов поиска. То есть, есть массив. Он содержит полную строку поиска и отдельно каждую подстроку. Например: Запрос: "Как пройти в библиотеку? Во" Массив: $a[0]="/Как пройти в библиотеку? Во/Usi"; $a[1]="/Как/Usi"; $a[2]="/пройти/Usi"; $a[3]="/в/Usi"; $a[4]="/библиотеку/Usi"; $a[5]="/Во/Usi"; Задача: $text=preg_replace ($a, '<span class="hlight">$1</span>', $text); - сделать так, чтобы это выражение заменило каждый элемент массива только в одном проходе. Начиная с более длинных строк и заканчивая короткими. Для этого массив будет выстроен по длине строк. Проблема в том, что после замены в данном примере "Во" на "<span class="hlight">Во</span>", произойдёт ещё одна замена: "<span class="hlight"><span class="hlight">В</span>о</span>" Это сообщение отредактировал(а) Wolf1994 - 20.6.2006, 23:48 |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Думается мне, что так будет лучше...
|
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 1 Всего: 29 |
Великолепно!!!
Спасибо. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |