2009-07-04 4 views
0

Я сталкивался с этими проблемами несколько раз, прежде чем пытаться сделать некоторые html-скребки с php и функциями preg *.Есть ли токен для разрывов линии захвата в многострочном регулярном выражении?

Большую часть времени я с захвата структур так:

<!-- comment --> 
<tag1>lorem ipsum</tag> 

<p>just more text with several html tags in it, sometimes CDATA encapsulated…</p> 
<!-- /comment --> 

В частности, я хочу что-то вроде этого:

/<tag1>(.*?)<\/tag1>\n\n<p>(.*?)<\/p>/mi 

но \ п \ п не похоже, что это сработает.

Есть ли общий выключатель?

ответ

3

Я думаю, вы могли бы заменить \n\n(\r?\n){2} таким образом, чтобы вы захватили пару CRLF вместо всего лишь символа LF.

1

Вы уверены, что хотите анализировать HTML с помощью регулярных выражений? HTML не является регулярным, и слишком много угловых случаев.

Я бы исследовал некоторую форму анализатора HTML (возможно, this one?), А затем идентифицировал шаблон, который вас интересует, с помощью возвращаемой структуры данных HTML.

+0

Скремблирование с использованием регулярных выражений отлично подходит для меня на сегодняшний день. Но спасибо за ссылку. –

0

Или вы можете посмотреть на Dom Extension на php. Он имеет функцию load html from a stringor a file. Затем вы можете использовать методы php dom для перемещения по dom и найти интересующие вас данные.

 Смежные вопросы

  • Нет связанных вопросов^_^