Автор Тема: Как в регекспе указать НЕ?  (Прочитано 7062 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kosm

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 110
  • +0/-0
  • 0
    • Просмотр профиля
    • http://japanretro.tk
Как в регекспе указать НЕ?
« Ответ #15 : 10 Июня 2003, 16:30:02 »
Neter
Точно, нужно как можно точнее описать урл. Ведь мой NULL не совсем стандартный (в отличии от тех с которыми нужно работать).

Подправил немного твой регексп:
()

Теперь мой NULL просто под это выражение не подпадает...


Кстати, интересно, а если бы это на пару с php делать, то как бы это отразилось на скорость? Вообще регексы много кушают ресурсов?

Оффлайн kosm

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 110
  • +0/-0
  • 0
    • Просмотр профиля
    • http://japanretro.tk
Как в регекспе указать НЕ?
« Ответ #16 : 10 Июня 2003, 16:34:12 »
Вот как бы еще одну проблемку решить? Чего-то пока не соображу :(
http://forums.webscript.ru/showthread.php?s=&threadid=12205&msgnum=3

Может просто как?
(все выражение){3}
« Последнее редактирование: 10 Июня 2003, 16:43:53 от kosm »

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Как в регекспе указать НЕ?
« Ответ #17 : 10 Июня 2003, 22:15:36 »
Люди, да чего вы в этих регекспах наворотили! Их же уже вообще читать невозможно! Хоть я их часто не использую, но знаю наверняка, что они очень медленные. Особенно с вложенными паттернами. ИМХО, куда быстрее будет разбить на две (может даже на три) части - сначала регекспом вытащить все ссылки в отдельный массив, потом проверить, есть ли в этом массиве ключ со значением "" или там substr_count($value, "null") > 0 и удалить соответствующий ключ. Ну а потом, если всё это надо вернуть назад в HTML-страничку, то при помощи strstr и ещё пары строковых функций это не составит особой проблемы.
[off]Я пишу это сообщение не потому, что приведенный мною способ никому не понравился, а скорее потому что хочу понять, почему он не понравился? Наверняка есть какие-то конструктивные замечания, которые я бы с удовольствием выслушал...[/off]
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн nagash

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 341
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.nagash.org
Как в регекспе указать НЕ?
« Ответ #18 : 11 Июня 2003, 02:09:14 »
мдя...
это же элементарно...
http://www.optim.ru/cs/2001/1/regular/regexpr.asp
читаем про Lookahead- и Lookbehind-условия
мдя...

Оффлайн kosm

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 110
  • +0/-0
  • 0
    • Просмотр профиля
    • http://japanretro.tk
Как в регекспе указать НЕ?
« Ответ #19 : 11 Июня 2003, 10:40:33 »
FreeSpace
Твой способ отличный. Но я просто не совсем понял каким образом потом расставить на свои места урлы :( То, что их можно вытянуть и потом что-то с ними делать, это мое самое первое предположение по решению этой задачи. Но к сожалению что с ними делать потом, я не придумал :( Если есть мысли по этому поводу - излагай, будет очень интересно.
А так, думаешь, в общем случае, оно будет бустрее работать (со вставкой из PHP)?
А на регекспы я еще кинулся потому, что хочется в них разобраться...

nagash
Спасибо, попробую с этим поиграться...

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Как в регекспе указать НЕ?
« Ответ #20 : 11 Июня 2003, 14:59:44 »
kosm
Скажем так, я не спец по регекспам и использую их редко. Тесты на скорость не проводил, но мне кажется, что мой способ работает быстрее, чем такие вот трёхэтажные регексповые паттерны. Во всяком случае читать точно легче :)
Почитай сначала инфу по ссылочке nagash\'а. Если это тебе не поможет, тогда уже будем дальше думать. Ну а если всё в один небольшой регексп уместишь - ну так вообще красота будет :)
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28