За последние 24 часа нас посетили 17888 программистов и 1286 роботов. Сейчас ищут 1402 программиста ...

Все печатные символы + Русские символы

Тема в разделе "Регулярные выражения", создана пользователем sozon, 18 апр 2007.

  1. sozon

    sozon Активный пользователь

    С нами с:
    18 апр 2007
    Сообщения:
    4
    Симпатии:
    0
    У меня такая проблема.
    Нужно отпарсить страницу. Для этого понадобился класс [[:print:]] - все печатные символы. Но он не содержит кириллицу. А русские символы также необходимы в регулярном выражении.
    Можно ли как то дополнить этот класс?

    Т.е. например можно написать [0-9а-я] - цифровые символы дополняем русскими. А как поступить с классом [[:print:]] ? Можно ли дополнить его русскими символами. Или придется перечислять все заново (все цифры, буквы, знаки препинания, другие символы..) Может есть какой нибудь способ?

    Поподробнее опишу задачу:
    Есть страница, на которой есть название и описание товара. К примеру название обрамляется <p><a href=..........>Название</a></div>
    и описание также обрамляется определенными тэгами.

    Таким образом описав в регулярном выражении конструкуции
    <p><a href=..........>
    и </a></p> Мне нужно вытащить то, что между ними.
    ereg('[0-9]+">([[:print:]]+)</a></div>',$page,$arr)

    ([[:print:]]+) и должно дать название, но проблемы начинаются, когда в названии встречаются русские символы.
     
  2. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    sozon
    используйте preg_match, там все работает.
     
  3. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    1). USE preg_*
    2)
    PHP:
    1. <?php preg_match_all('/\<a.*?\>([[:print:]а-я])\<\/a\>/i', $text, $matches);?>
     
  4. sozon

    sozon Активный пользователь

    С нами с:
    18 апр 2007
    Сообщения:
    4
    Симпатии:
    0
    Всем ограмное спасибо.
    Помогло.
     
  5. sozon

    sozon Активный пользователь

    С нами с:
    18 апр 2007
    Сообщения:
    4
    Симпатии:
    0
    Опять проблема. На страницах сайта, который нужно отпарсить встречаются нестандартные символы, которые не удовлетворяют регулярному выражению [[:print:]а-яА-ЯЁё] например символы с кодами (по функции ord) 9 и 183

    Можно ли написть регулярное выражение, которое бы соответствовало всем символам?

    Т.е. например взять все, что находится между <td> </td>.
     
  6. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    sozon, для этого есть точка
     
  7. sozon

    sozon Активный пользователь

    С нами с:
    18 апр 2007
    Сообщения:
    4
    Симпатии:
    0
    Спасибо, очень помогли.