![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
-=Ustas=- |
|
||||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 6 Всего: 69 |
Здрасте!
Прошу не ругать, я с ними (регами) еще не очень подружился, вот, пытаюсь. Значит есть такой дескриптор в переменной: [ URL=http://\"http://www.site.ru/test_link.html\"]Тестовая ссылка[/URL ] Заменяю его так:
- этот заменяется замечательно. А есть вот такой [img=\"pic\image.gif\"], заменяю его почти идентично, за исключением закрывающего дескриптора:
Так он, после нахождения первого вхождения загребает в себя весь остальной текст, в том числе и [url=...] и [hr] и вообще всё, что дальше идет, как если бы не стояло в конце закрывающей - ]. Следовательно замена потом не работает. Если же я инвертирую "жадность" модификатором U, то тогда нормально, но ведь в первом, где [url=]...[/url] без этого модификатора всё нормально пашет. Ничего не понимаю!!! ![]() Заранее пасибки! Это сообщение отредактировал(а) -=Ustas=- - 9.9.2005, 10:31 -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
||||
|
|||||
AriX |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 16.6.2003 Репутация: 1 Всего: 19 |
-=Ustas=-
Не претендую на правильность, но по-моему и первый регэксп у тебя неправильный ![]() Щас примерно объясню Первый регэксп
.* забирает сначала все, потом отдает по одному символу, до того момента, когда совпадет \[\/url\] Если у тебя в тексте всего одна [ url ], то все будет нормально, если после этого есть еще [ url ], то конечная часть регэкспа (\[\/url\]) совпадет с закрывающимся тегом у второго [ url ] Второй регэксп
Здесь .* забирет все, до последнего встречающегося в тексте символа ] по принципе описанному выше, т.к. этот кватнификатор "жадный" Я бы немного изменил оба выражения примерно так первое:
второе
(разбил по строчкам для облегчения восприятия) Вроде должны работать Или можно использовать "нежадные" кватнификаторы Это сообщение отредактировал(а) AriX - 9.9.2005, 13:56 |
||||||||
|
|||||||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 6 Всего: 69 |
Пасибки за пояснение, буду разбираться.
-------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
-=Ustas=-
тебе надо .*? использовать. А вообще ты же вроде должен был видеть темы, в которых регулярки для этих вещей уже давались, ты в них сам вроде отмечался даже ![]() |
|||
|
||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 6 Всего: 69 |
Мне не нужны готовые регулярки. Я просто просто начал учить их по Дж.Фридлу, некоторые вещи я не догнал, поэтому за пояснениями и обратился. ![]() AriX, кстати, пробовал по твоему принципу - ничего не понял, и ничего не работает. ![]() Добавлено @ 16:47 Mal Hack, чётко подсказал!!! Идеально работает. Пасибки! Добавлено @ 16:48 А пояснить данную конструкцию не мог бы? Именно эту связку .*? . Это сообщение отредактировал(а) -=Ustas=- - 9.9.2005, 16:50 -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Это так сказать "жадность". Т.е. .*? - любой символ, пока не встретиться первый ", а .* - любой символ до последнего ". Это на практике так. Более точно принцип описан тут: http://php.rinet.ru/manual/ru/reference.pc...tern.syntax.php В принципе это лучший хэлп для всего... |
|||
|
||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 6 Всего: 69 |
Большое спасибо! В нэте сколько лазил, но на данный ман почему-то не натыкался.
![]() -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Тексты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |