#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] -->