Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: прошу помощи с регулярным выражением
Форумы портала PHP.SU » PHP » Регулярные выражения » прошу помощи с регулярным выражением

Страниц (1): [1]
 

1. koka - 22 Января, 2011 - 23:32:04 - перейти к сообщению
Здравствуйте. Надо получить кусочек текста, расположенный на страничке между тегами font

CODE (html):
скопировать код в буфер обмена
  1. <font style="font: 12px Arial; color:#000;">
  2. <p class="MsoNormal"><strong>Дневные ходовые огни, или DRL (Daytime Running Light)</strong> - это
  3. одна из новинок в области автосвета. Ходовые огни предназначены для того, чтобы
  4. сделать ваш автомобиль заметнее, а не для освещения дороги. </p>
  5. <p class="MsoNormal"><strong>Использовать <span lang="EN-US">DRL</span><span lang="EN-US">&nbsp;</span>выгоднее</strong>, чем фары, поскольку луч света от <span lang="EN-US">DRL</span> направлен выше, что делает вас
  6. заметнее, но при этом не ослепляет водителя. Также износ фар при постоянном
  7. использовании куда выше, чем износ <span lang="EN-US">DRL</span> при том же использовании, поскольку они специально предназначены
  8. для постоянной работы.</p>
  9. <p class="MsoNormal">Проще один раз <strong>купить дневные ходовые огни</strong>, чтобы потом
  10. всегда быть заметным на дороге и не платить деньги за дополнительное
  11. обслуживание фар. А в свете последней поправки от 20 ноября 2010 года о езде с
  12. включенным ближним светом или ходовыми огнями – <strong>использование <span lang="EN-US">DRL</span> поможет вам избежать высоких штрафов.</strong></p><span ;="" mso-fareast-font-family:="" times="" new="" roman="" ;mso-ansi-language:ru;mso-fareast-language:="" ru;mso-bidi-language:ar-sa="" style="font-size: 12pt;">&nbsp;</span></font>



Написал такое выражение
PHP:
скопировать код в буфер обмена
  1. preg_match ('/<font style="font: 12px Arial; color:#000;">(^<\/font>)+/i', $code, $header_content);

Вроде должно работать.

Рассуждал так:
1) указал уникальный кусочек текста <font style="font: 12px Arial; color:#000;">
2) идут любые символы до тега </font>
пробовал написать ?+</font> , но так тоже не работает.
Пробовал указать шаблон <font style="font: 12px Arial; color:#000;">?+(?=</font>)
тож не помогло.

?+ означает не менее одного любого символа. Или я что-то путаю???
2. movEAX - 23 Января, 2011 - 09:31:43 - перейти к сообщению
Улыбка
#<font[^>]*>(.+)</font>#Us
3. koka - 23 Января, 2011 - 09:48:42 - перейти к сообщению
movEAX, спасибо, что-то я видать подзабыл регулярные выражения, сам себя запутал. Радость Радость Радость

Для себя в итоге написал такое, так как тегов font на странице несколько различных штук
PHP:
скопировать код в буфер обмена
  1. preg_match ('#<font style="font: 12px Arial; color:\#000;">(.+)</font>#Us', $code, $header_content);
4. SAD - 23 Января, 2011 - 09:52:44 - перейти к сообщению
koka, вы очевидно извращенец)
та регулярка
Цитата:
#<font[^>]*>(.+)</font>#Us
, найдет все, что нужно.
5. koka - 23 Января, 2011 - 09:57:50 - перейти к сообщению
SAD, я привёл лишь кусочек кода. На этой странице там куча тегов фонт, можете сами посмотреть http://www[dot]realxenon[dot]ru/modules/shop/cat_14[dot]html
А нажать ctrl+c ctrl+v не сложно Подмигивание
Я посчитал, там целых 17 тегов font!!!
6. JustUserR - 23 Января, 2011 - 11:58:58 - перейти к сообщению
koka пишет:
Надо получить кусочек текста, расположенный на страничке между тегами font
В качестве возможного варианта решения предполагаемой задачи допустимо исопльзование средств XML-анализатора позволяющег обеспечить извлечение отдельныъ элементов и их параметров из оригинального документа - на основе предоставления явного вложенного пути к целевому элементу или критерия его поиска в XML-документе
7. koka - 23 Января, 2011 - 12:02:06 - перейти к сообщению
JustUserR пишет:
koka пишет:
Надо получить кусочек текста, расположенный на страничке между тегами font
В качестве возможного варианта решения предполагаемой задачи допустимо исопльзование средств XML-анализатора позволяющег обеспечить извлечение отдельныъ элементов и их параметров из оригинального документа - на основе предоставления явного вложенного пути к целевому элементу или критерия его поиска в XML-документе


JustUserR, а что такое XML анализатор??? Он эффективнее, лучше регулярных выражений??? Если да, то можете дать какую-нибудь ссылку на эту тему?
8. movEAX - 23 Января, 2011 - 12:18:24 - перейти к сообщению
JustUserR пишет:
В качестве возможного варианта решения предполагаемой задачи допустимо исопльзование средств XML-анализатора позволяющег обеспечить извлечение отдельныъ элементов и их параметров из оригинального документа - на основе предоставления явного вложенного пути к целевому элементу или критерия его поиска в XML-документе

Это с условием валидности контента.
9. koka - 23 Января, 2011 - 12:23:59 - перейти к сообщению
movEAX пишет:
JustUserR пишет:
В качестве возможного варианта решения предполагаемой задачи допустимо исопльзование средств XML-анализатора позволяющег обеспечить извлечение отдельныъ элементов и их параметров из оригинального документа - на основе предоставления явного вложенного пути к целевому элементу или критерия его поиска в XML-документе

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


А что такое XML-анализатор???

movEAX, то есть этим анализатором не получится распарсить страницу с ошибками в html???
10. movEAX - 23 Января, 2011 - 12:32:34 - перейти к сообщению
koka пишет:
А что такое XML-анализатор???

SAX, Simple XML, XPath
koka пишет:

movEAX, то есть этим анализатором не получится распарсить страницу с ошибками в html???

Почему же, просто придется сделать его валидным.
11. JustUserR - 23 Января, 2011 - 12:35:50 - перейти к сообщению
koka пишет:
JustUserR, а что такое XML анализатор??? Он эффективнее, лучше регулярных выражений??? Если да, то можете дать какую-нибудь ссылку на эту тему
Использование средств XML-анализатора для решения предполагаемой задачи в действительности является в значительной мере более эффективным решением обеспечиваемого за счет проведения разбора XML-документа в компиированном коде соответствующих модулей
Более подробная информация по данному вопросу предоставлена здесь http://www.php.su/functions/?page=cat_xml

 

Powered by ExBB FM 1.0 RC1