Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с регулярным выражением! для вывода части текста 
V
    Опции темы
Splendid
Дата 19.9.2007, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 1.8.2007
Где: Беларусь, Минск

Репутация: нет
Всего: нет




есть текст, допустим:
 
$str = "используются в условии LEFT JOIN. Все условия перемещаются в предложение WHERE.";

есть регулярное выражение:

$str = preg_replace("/(.{0,10})(LEFT)(.{0,10})/", "...$1$2$3...", $str);

Оно выводит: используются ...в условии LEFT JOIN. ...Все условия перемещаются в предложение WHERE.

Как сделать так, чтобы выводило: ...в условии LEFT JOIN. Все ...

и чтобы

$str = preg_replace("/(.{0,10})(LEFT|условия)(.{0,10})/", "...$1$2$3...", $str);

выводило: ...в условии LEFT JOIN. Все ... ...JOIN. Все условия перемещают...

????? Помогите, пожалуйста!


PM MAIL   Вверх
ewolf
Дата 19.9.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 4
Всего: 18



preg_replace заменяет только совпадающую с шаблоном часть строки, а остальную не трогает. Надо сделать так:

Код

$str = preg_replace("/.*?(.{0,10})(LEFT)(.{0,10}).*/", "...$1$2$3...", $str);


По второй части вопроса - лучше дважды пройтись регуляркой по строке (сначала с "LEFT", а потом с "условия"), а потом вывести последовательно результат.

Код

$str_1 = preg_replace("/.*?(.{0,10})(LEFT)(.{0,10}).*/", "...$1$2$3...", $str);
$str_2 = preg_replace("/.*?(.{0,10})(условия)(.{0,10}).*/", "...$1$2$3...", $str);
echo $str_1.$str_2;




Это сообщение отредактировал(а) ewolf - 22.9.2007, 16:35
PM MAIL ICQ   Вверх
Splendid
Дата 20.9.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 1.8.2007
Где: Беларусь, Минск

Репутация: нет
Всего: нет



Спасибо! То, что надо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0393 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.