У меня есть этот блок html:
<div>
<p>First, nested paragraph</p>
</div>
<p>First, non-nested paragraph.</p>
<p>Second paragraph.</p>
<p>Last paragraph.</p>
Я пытаюсь выбрать первый, не вложенный абзац в этом блоке.Я использую PHP (стиль Perl) preg_match, чтобы найти его, но не могу понять, как игнорировать тег p, содержащийся в div.
Это то, что у меня есть, но он выбираетсодержание первого абзаца, содержащегося выше.
/<p>(.+?)<\/p>/is
Спасибо!
РЕДАКТИРОВАТЬ
К сожалению, я не могу позволить себе такую роскошьDOM Parser.
Я полностью благодарен за предложения не использовать RegEx для разбора HTML, но это не очень помогает моему конкретному случаю использования.У меня очень контролируемый случай, когда внутреннее приложение генерирует структурированный текст.Я пытаюсь заменить текст, если он соответствует определенному шаблону.Это упрощенный случай, когда я пытаюсь игнорировать текст, вложенный в другой текст, а HTML был простейшим примером, который я мог бы объяснить.Мой фактический случай выглядит примерно так (но гораздо больше данных и минимизировано):
#[BILLINGCODE|12345|11|15|2001|15|26|50]#
[ITEM1|{{Escaped Description}}|1|1|4031|NONE|15]
#[{{Additional Details }}]#
[ITEM2|{{Escaped Description}}|3|1|7331|NONE|15]
[ITEM3|{{Escaped Description}}|1|1|9431|NONE|15]
[ITEM4|{{Escaped Description}}|1|1|5131|NONE|15]
Мне нужно переформатировать определенный столбец определенных строк в тонну строк, похожих на эту.Помочь моему первому вопросу поможет настоящий проект.