[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: эквивалентность регулярок
Invis1ble
Чтобы не вдаваться в ненужные подробности, опишу проблему так:
имеются 3 шаблона:

#(<br>\n)[^<>]*( [^<> ]*[^<>]{35}<b>)#
#(</b>[^<>]{35}[^<> ]* )[^<>]*( [^<> ]*[^<>]{35}<b>)#
#(</b>[^<>]{35}[^<> ]* )[^<>]*(<font color=blue>)#

вопрос: эквивалентны ли данные шаблоны следующим шаблонам (соответственно):

#(<br>\n).*?( .{35,}?)#
#(</b>.{35,}? ).*?( .{35,}?)#
#(</b>.{35,}? ).*?(<font color=blue>)#

??



Спустя 2 дня, 18 часов, 28 минут, 50 секунд (12.08.2010 - 16:03) Invis1ble написал(а):
в частности интересует: правильно ли используется конструкция .*? в последних трех строках? Проштудировал кучу инфы о регулярках, вроде все правильно... Подскажите, плиз, а то не могу решить проблему уже 3-ю неделю.

Спустя 4 минуты, 30 секунд (12.08.2010 - 16:07) DedMorozzz написал(а):
Начнём с начала. Что это:
#(<br>\n)[^<>]*( [^<> ]*[^<>]{35}<b>)#
1 интервал [^<>]* - лишний.
Далее. Это ну никак не равно #(<br>\n).*?( .{35,}?)#. Потому что <> входит в "."

Спустя 3 минуты, 7 секунд (12.08.2010 - 16:10) DedMorozzz написал(а):
Потом. ПО поводу .*?
Знак вопроса перед звёздочкой указывает, что "это" будет встречаться лишь ДО того, что стоит после знака вопроса. Отсюда вытекает, что .*?. == .

Спустя 14 минут, 59 секунд (12.08.2010 - 16:25) Invis1ble написал(а):
DedMorozzz
Цитата
#(<br>\n)[^<>]*( [^<> ]*[^<>]{35}<b>)#
1 интервал [^<>]* - лишний

почему лишний? мне надо будет потом его вырезать preg_replace'ом, поэтому я помещаю подстроки слева и справа от него в карманы. В него не должны входить теги.

Спустя 2 минуты, 44 секунды (12.08.2010 - 16:28) DedMorozzz написал(а):
лишний лишь по тому, что первый "[^<>]*" ПОЛНОСТЬЮ включает в себя 2й этот же кусок. в участке
Цитата
[^<>]*( [^<> ]*

Спустя 17 минут, 11 секунд (12.08.2010 - 16:45) Invis1ble написал(а):
Блин, я запутался совсем... Можешь переделать первые 3 шаблона с использованием .*? ?
Думаю - увижу, как надо, и пойму наконец...


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.