Автор Тема: Помогите построить регулярное выражение  (Прочитано 5244 раз)

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

Оффлайн Sileri

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не могу понять как нужно писать регулярные выражения в PHP.
Мне нужно определить текст между тэгами заголовка

и

и вставить в документ.

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Текст между тегами заголовка <h1> и </h1>
« Ответ #1 : 14 Апреля 2004, 16:21:50 »
preg_match();

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Текст между тегами заголовка <h1> и </h1>
« Ответ #2 : 14 Апреля 2004, 17:39:34 »
такую задачу можно решить и без регулярных - найти позицию первого тега, второго ,и вырезать все, что между ними

Оффлайн Sileri

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Текст между тегами заголовка <h1> и </h1>
« Ответ #3 : 15 Апреля 2004, 09:26:29 »
Я просто хотела на простом примере понять как работает функция preg_match();

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Текст между тегами заголовка <h1> и </h1>
« Ответ #4 : 15 Апреля 2004, 09:58:56 »
Цитировать
Sileri:
Я просто хотела на простом примере понять

тебе сюда:
http://detail.phpclub.net/article/regexp_1
http://detail.phpclub.net/article/regexp_2
работа в Украине

Оффлайн Sileri

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Текст между тегами заголовка <h1> и </h1>
« Ответ #5 : 15 Апреля 2004, 14:36:25 »
Спасибо, я прочитала обе статьи.
Кое-что поняла

почему не работает следующая конструкция:

preg_match_all("/(?<=

).*(?=<\\/h1>)/", $file, $matches);
Выдает пустой массив


Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Текст между тегами заголовка <h1> и </h1>
« Ответ #6 : 15 Апреля 2004, 14:42:27 »
переезжаем в профильный форум
ну, будем исповедоваться?

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Текст между тегами заголовка <h1> и </h1>
« Ответ #7 : 16 Апреля 2004, 15:23:43 »
Цитировать
Sileri:
Выдает пустой массив

Вся фишка тут в квантификаторе:
* подразумевает, что не требуется ни один символ, может совпасть сколько угодно символов. Механизм останавливается прямо на первом условии и не требует ни одного символа! Поставь ему вместо * плюсик + и все заработает!



<?
preg_match_all("/(?<=<h1>\\).+(?=<\\\\/h1>\\)/"$file$matches);
?>


Механизм совпадения увидит плюсик (должен совпасть минимум один символ), и начинает искать минимум один, а потом он становится жадным и ищет все символы.
работа в Украине

 

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