Нужна небольшая справка reg-exp

#php #html #regex

#php #HTML #регулярное выражение

Вопрос:

Я ужасен в reg-exp, поэтому мне нужна небольшая помощь, чтобы сделать это правильно.

Я получил PHP-переменную, содержащую HTML-код, созданный из PDF. Страницы разделены комментарием в следующем стиле:

 <!-- Page 1 -->
  

Что мне нужно, так это разделить содержимое каждого из этих комментариев, чтобы я мог отделять страницы друг от друга. Я пытался использовать just explode('<!-- Page', $content) , но это оставляет остальную часть тега в начале следующей страницы, так что, очевидно, это недостаточно хорошее решение.

Итак, с чем мне нужна помощь, так это с поиском reg-exp, который будет разделяться на <!-- Page X --> где X может быть любым числом. Кто-нибудь может мне помочь?

Комментарии:

1. Если вы используете инструмент регулярных выражений, такой как Expresso , вы сможете довольно легко написать их самостоятельно.

2. @Town кажется хорошим инструментом, я попробую 🙂 Спасибо за совет

Ответ №1:

Кажется, это работает просто отлично;

 <?php

$foo = '

Hello.

<!-- Page 2 -->

Bar

<!-- Page 3 -->

Foo
';

$pages = array_map( 'trim', preg_split( '~<!-- Page (d ) -->~m', $foo ) );

var_dump( $pages );
  

Вывод:

 berry@berry-pc:~$ php foo.php 
    array(3) {
  [0]=>
  string(6) "Hello."
  [1]=>
  string(3) "Bar"
  [2]=>
  string(3) "Foo"
}
  

Надеюсь, это поможет.

Комментарии:

1. Я не знаю PHP, но я почти уверен, что вы захотите, чтобы после d указывал одну или несколько цифр (для страниц 10 )

2. Используемый вами шаблон, похоже, соответствует только с страницы 0 по страницу 9 , но я думаю, что он также должен соответствовать странице 42 или странице 102 … шаблон должен быть d вместо d

Ответ №2:

простое регулярное выражение:

 <!-- Page [0-9]  -->