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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите чайнику, Регулярнуе выражения 
:(
    Опции темы
Tommy
Дата 23.7.2002, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 19.7.2002

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



Подскажите как получить текст между двумя наборами символов, и заменить
Пример:

11 текст текст текст текст текст текст 22

заменить, ну скажем на

22 текст текст текст текст текст текст 33

Вот так.
:(
PM MAIL   Вверх
crimaniak
Дата 26.7.2002, 02:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











$result=preg_replace('/11(.*)22/s','22\\1\\x333',$text);

В данном случае пришлось записать первую тройку как \x33, чтобы отделить ее от back-reference \\1
  Вверх
Tommy
Дата 26.7.2002, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 19.7.2002

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



Я только начал заниматься регулярнуми выражениями поэтомы у меня еще вопрос: Как, допустим, венуть строку до первого вхождения символа, ну скажем, 11. Если пишу .+11 то возвращапеть до последнего вхождения 11 а если .+?11 то пишет ошибку
PM MAIL   Вверх
crimaniak
Дата 26.7.2002, 23:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











При работе регулярного выражения есть два режима - "жадный" и "не жадный", отличающиеся как раз тем, какую последовательность, подпадающую под маску, они находят. По умолчанию - жадный, поэтому оно и ищет до последнего 11. Тебе нужно поставить модификатор /U:

U (PCRE_UNGREEDY)

This modifier inverts the "greediness" of the quantifiers so that they are not greedy by default, but become greedy if followed by "?". It is not compatible with Perl. It can also be set by a (?U) modifier setting within the pattern.
  Вверх
Tommy
Дата 27.7.2002, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 19.7.2002

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



Я знаю но если я ставлю этот модификатор. то у меня вообще ничего не происходит, то есть никакой замены.
PM MAIL   Вверх
crimaniak
Дата 30.7.2002, 20:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Дальше дебажить надо. Путем перехода от простого выражения к более сложным.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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