The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Помогите с регулярными выражениями плииз, !*! karlson, 14-Апр-06, 10:42  [смотреть все]
есть строка вида
<h1>blalbla</h1>

как из нее выдрать текст, заключенный между тегами?
в данном случае blabla.

делаю так: /$^<h1\|H1>[~<]*<\/h1\|H1>/

но не работает.

  • Помогите с регулярными выражениями плииз, !*! madskull, 11:03 , 14-Апр-06 (1)
    >есть строка вида
    ><h1>blalbla</h1>
    >
    >как из нее выдрать текст, заключенный между тегами?
    >в данном случае blabla.
    >
    >делаю так: /$^<h1\|H1>[~<]*<\/h1\|H1>/
    >
    >но не работает.

    И не будет. Возьмите какой-нибудь талмуд по регекспам и посмотрите, что Вы написали.
    Зачем "$" в начале? Как, по Вашему, обработчик должен понимать "\|" ?

    В Вашем случае все просто (если имеются в виду регекспы в перле):
    /<h1>(.+?)<\/h1>/i
    в $1 - найденный текст

  • Помогите с регулярными выражениями плииз, !*! MTHawk, 11:10 , 14-Апр-06 (2)
    >есть строка вида
    ><h1>blalbla</h1>
    >
    >как из нее выдрать текст, заключенный между тегами?
    >в данном случае blabla.
    >
    >делаю так: /$^<h1\|H1>[~<]*<\/h1\|H1>/
    >
    >но не работает.

    Зачем $ в начале регекспа? Это символ конца строки. Это раз.
    [~<] - Очевидно подразумавалось все символы кроме <.
    Тогда это должно выглядеть так [^<] - множество полученное отрицанием. Но вдруг в тексте появится символ < несущий смысловую нагрузку? это два.
    Если вы хотите использовать альтернативу  - ее нужно заключать в круглые скобки
    (h|H), но в данном случае это нерационально, поскольку есть ключ i дающий регистронезависимость. это три.
    Что бы "выдрать текст" его тоже нужно заключать в круглые скобки. это четыре.
    Итак мы получаем.
    /^<h1>(.+)/<\/h1>/i;
    Если текст нужно достать с начала строки.
    Значение в круглых скобках будет находится в переменной $1
    Но можно его забрать из регекспа в одну строку.

    $string='<h1>blalbla</h1>';
    ($text)=$string~=/^<h1>(.+)/<\/h1>/i;




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру