Автор Тема: Помогите плиз составить RegExp  (Прочитано 3703 раз)

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

Оффлайн kosm

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 110
  • +0/-0
  • 0
    • Просмотр профиля
    • http://japanretro.tk
Помогите плиз составить RegExp
« : 29 Мая 2003, 14:35:20 »
Никак не могу разобраться, как с помощью регекспа выделить текст от начала до N-го петтерна?
Т.е. к примеру есть такой текст:
--
тут какой-то текст
  • Заголовок 1

  • Еще текст
  • Заголовок 2

  • И еще текст
  • Заголовок 3

  • И тд

    Так вот как бы составить регексп так, чтобы выделить текст от начала, до начала 2-го заголовка? До первого (ограничивая жадность) или последнего могу:
    (^.*?(
  • ))
    А вот как бы до конкретного? :(
    Или это уже делается средствами php?

  • Оффлайн D1g174LM4n14c

    • 1m
    • Постоялец
    • ***
    • Сообщений: 137
    • +0/-0
    • 2
      • Просмотр профиля
      • http://
    Помогите плиз составить RegExp
    « Ответ #1 : 29 Мая 2003, 15:23:21 »
  • Заголовок 2
  • Мы такие!

    Оффлайн kosm

    • Фанат форума
    • Постоялец
    • ***
    • Сообщений: 110
    • +0/-0
    • 0
      • Просмотр профиля
      • http://japanretro.tk
    Помогите плиз составить RegExp
    « Ответ #2 : 29 Мая 2003, 15:28:07 »
    D1g174LM4n14c
    В прямом смысле понятно. Только вот если я не знаю текста заголовка?

    Оффлайн D1g174LM4n14c

    • 1m
    • Постоялец
    • ***
    • Сообщений: 137
    • +0/-0
    • 2
      • Просмотр профиля
      • http://
    Помогите плиз составить RegExp
    « Ответ #3 : 29 Мая 2003, 16:26:59 »
    "Поиграйся" с кванторами {...}
    Мы такие!

    Оффлайн kosm

    • Фанат форума
    • Постоялец
    • ***
    • Сообщений: 110
    • +0/-0
    • 0
      • Просмотр профиля
      • http://japanretro.tk
    Помогите плиз составить RegExp
    « Ответ #4 : 10 Июня 2003, 16:56:13 »
    Для примера берем кусок html
    Цитировать

  • Topic 1
  • Topic 2
  • Topic 3
  • Topic 4


  • Под него регексп:    (?:(.+?))
    Выберает все Topic X
    Как бы именно выдрать например по Topic 3 ?

    {} ни к чему не приводят :(

    Есть у кого какие мысли?

    Оффлайн FreeSpace

    • Штатный лодырь
    • Ветеран
    • *****
    • Сообщений: 613
    • +0/-0
    • 2
      • Просмотр профиля
      • http://www.infinity.com.ua
    Помогите плиз составить RegExp
    « Ответ #5 : 10 Июня 2003, 22:22:02 »
    int preg_match ( string pattern, string subject [, array matches [, int flags]] )
    Вот в matches и будут твои результаты. Если сразу не разберешься, напиши так:
    echo "<pre>";
    print_r($matches);
    echo 
    "</pre>";
    exit;   
    // <-- это по желанию
    Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

    Оффлайн kosm

    • Фанат форума
    • Постоялец
    • ***
    • Сообщений: 110
    • +0/-0
    • 0
      • Просмотр профиля
      • http://japanretro.tk
    Помогите плиз составить RegExp
    « Ответ #6 : 11 Июня 2003, 12:36:57 »
    Ок, так я найду все вхождения и выберу какой мне надо (скажем второй по счету - "Topic 2"). А как мне взять теперь текст от начала (текста) до "Topic 2"?

    Оффлайн mike

    • ProPerl\'er
    • Старожил
    • ****
    • Сообщений: 435
    • +0/-0
    • 2
      • Просмотр профиля
      • http://
    Помогите плиз составить RegExp
    « Ответ #7 : 11 Июня 2003, 13:07:09 »
    Есть такой вариант c иcпользованием {}:
    (.*?(
  • .*?){n})


  • где n - число захватываемых заголовков. Т.е. если нужно выделить текст до 2-го, то n =1 и {} можно не использовать.
  • [ основной браузер когда-то был, теперь попробуй разберись =]

    Оффлайн FreeSpace

    • Штатный лодырь
    • Ветеран
    • *****
    • Сообщений: 613
    • +0/-0
    • 2
      • Просмотр профиля
      • http://www.infinity.com.ua
    Помогите плиз составить RegExp
    « Ответ #8 : 11 Июня 2003, 15:06:34 »
    Цитировать
    kosm
    А как мне взять теперь текст от начала (текста) до "Topic 2"?

    $needed_text substr($whole_text0strpos($needed_text"<li><b>Topic 3</b>") - 1);
    Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

     

    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