Я написал регулярное выражение, чтобы получить первые два абзаца из базы данных, который хранит его содержимое в формате HTML.RegEx заменить не работает в PHP
Я проверил с этим интернетом RegEx строитель/шашком here и here, и они оба, кажется, делать то, что я хочу, чтобы они сделали (я изменил RegEx немного, так как эти шашки для обработки нового форматирования строки, которые я . нашли после
Однако, когда я иду, чтобы использовать это в моем PHP это, кажется, не хотят, чтобы получить только группу я после, и вместо того, чтобы все матчи
Вот моя preg_replace
линия:.
$description = preg_replace('/(^.*?)((<p[^>]*>.*?<\/p>\s*){2})(.*)/', "$2", $description);
А вот мое содержание тестирования в формате содержания я получаю
<p>
Paragraph 1</p>
<p>
Paragraph 2</p>
<p>
Paragraph 3</p>
Я имел взгляд на this SO сообщения, которое не помогло.
Любые идеи?
EDIT
Как отмечается в одном из комментариев вы можете не Regex HTML в PHP (не знаю почему, я не очень беспокоили этим).
Теперь я открываю вариант для его получения в PL/SQL.
select
DBMS_LOB.substr(description, 32000, 1) /* How do I make this into a regular expression? */
from
blog_posts
Там другая SO пост на этом вопросе, который довольно хорошо известно, это один: http://stackoverflow.com/q/1732348/521598 – mishu
Почему Wouldn» • Для вас работает парсер DOM? Regex не следует использовать для обработки HTML. – npinti
Я только хочу получить первые 2 абзаца из CLOB в базе данных, но я не хочу менять этот CLOB, потому что следующая страница будет включать все это, его для предварительного просмотра блога. Текст возвращается как чистый HTML, и я решил, что это нужно сделать, прежде чем загружать его на страницу. –