Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: вырезка тегов

Сообщения:  [1-10]   [11-17] 

 
 автор: Trianon   (25.01.2011 в 12:05)   письмо автору
 
   для: defi   (25.01.2011 в 09:04)
 

Это контрпример.
Контрпример предназначен для доказательства невыполнения условий, неработоспособности алгоритма, а не для того, чтобы по нему что-то писать.

  Ответить  
 
 автор: defi   (25.01.2011 в 09:04)   письмо автору
 
   для: Trianon   (20.01.2011 в 23:14)
 

>контрпример придумать? :)
>
>

><p>text1</p>
><p>text2</p>
>  <pre>
>   <code>
>    <p>text3</p>
>    <p>text4</p>
>   </code>
>  </pre>
>  <p>text5</p>
>  <p>text6</p>
>  <pre>
>   <code>
>    <p>text7</p>
>    <p>text8</p>
>   </code>
>  </pre>
><p>text9</p> 
><p>text10</p> 
>

Напишите пожалуйста РВ для вашего примера, т.е. чтобы вытащить text3, text4, text7, text8.

  Ответить  
 
 автор: mihdan   (22.01.2011 в 23:17)   письмо автору
 
   для: defi   (20.01.2011 в 19:50)
 

Вы не рассматриваете работу через DOMDocument?

  Ответить  
 
 автор: mall12   (21.01.2011 в 22:10)   письмо автору
 
   для: Trianon   (21.01.2011 в 01:21)
 

321

  Ответить  
 
 автор: Trianon   (21.01.2011 в 01:21)   письмо автору
 
   для: neadekvat   (21.01.2011 в 00:36)
 

>> да, конечно.
>Как-то двусмысленно)
я так понял, что автор предполагал выдернуть именно перечисленное.

  Ответить  
 
 автор: neadekvat   (21.01.2011 в 00:36)   письмо автору
 
   для: Trianon   (21.01.2011 в 00:31)
 

> Значит данные можно получить в структурированном виде - из БД, из DOM, из дерева в файле, еще откуда-нибудь, где вся информация уже разобрана.
Согласен :) К тому же, для работы с dom существует даже встроенная поддержка, кажется. Ну а про подключаемые классы уж стоит ли говорить.

> да, конечно.
Как-то двусмысленно)

  Ответить  
 
 автор: Trianon   (21.01.2011 в 00:31)   письмо автору
 
   для: neadekvat   (21.01.2011 в 00:07)
 

>Однако, если брать конкретно эту ситуацию - какую задачу вы решали?

Ситуацию этого топика? да я, собственно, никакую не решал.
выражение на языке разметки (html) - рекурсивно определяемое.
Регулярки, как инструмент, с такими не работают, а R-шаблоны - исключение, притянутое, в общем-то, за уши.
Плюс, как правило, истинный источник данных в подобных ситуациях, он же не в html?
Значит данные можно получить в структурированном виде - из БД, из DOM, из дерева в файле, еще откуда-нибудь, где вся информация уже разобрана.
Зачем мне её решать?

Ну то есть можно конечно, типа на слабо.
Но я пока не повелся :)

>Я старался сделать так, чтобы на выходе было 4 элемента: test3, text4, text7, text8.
да, конечно.

  Ответить  
 
 автор: neadekvat   (21.01.2011 в 00:07)   письмо автору
 
   для: Trianon   (21.01.2011 в 00:01)
 

Идею в целом, кажется, понял.

Однако, если брать конкретно эту ситуацию - какую задачу вы решали?
Я старался сделать так, чтобы на выходе было 4 элемента: test3, text4, text7, text8.

  Ответить  
 
 автор: Trianon   (21.01.2011 в 00:01)   письмо автору
 
   для: neadekvat   (20.01.2011 в 23:44)
 

 <? 

 $pattern  
=
'%
( <[a-z0-9]+ [^>]* (?<=/)>)
|
(
 <( [a-z0-9]+) [^>]* (?<!/)>
 (
  (
     [^<]*
  |
     (?R)
  )*
 )</\\3>
)
%x'
;


Это в качестве информации к размышлению - применительно к тегам вообще. А не именно сюда.

  Ответить  
 
 автор: neadekvat   (20.01.2011 в 23:44)   письмо автору
 
   для: Trianon   (20.01.2011 в 23:14)
 

/<pre>\s*<code>\s*(<p>[^<]+<\/p>\s+)+<\/code>\s*<\/pre>/i

Однако получается достать только последний <p></p>, вложенный в code. И не знаю, как это доделать.. Отчасти, потому что не понимаю - РВ находит только последнее (втф, если так - они идентичны) или перезаписывает предыдущее вхождение найденным.

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования