Regex получить строку в теге <p> </p>

У меня есть такой код:

$body = '<p>awesometext:data</p>';
preg_match_all("/<p>([^<]+)</p>/", $body, $matches);
$string = array_map('trim', $matches[1]);

В результате я получаю пустой массив $string. Как я могу это исправить?

Нить может быть и побольше. Пример:

$body = '<p>awesometext:data</p><p>othertext:data</p><p>sss:sddd</p>'; //e.t.c

Похоже, у меня это работает: eval.in/1073233

scrowler 30.12.2018 16:38

В ваших примерах нет начальных / конечных пробелов. Что ты хочешь? У вас есть другие примеры?

user3783243 30.12.2018 17:00

У меня тоже отлично работает @RobbieAverill, а также с более длинной строкой

Samuel 30.12.2018 17:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
56
1

Ответы 1

Если я вас правильно понял, чтобы получить строки внутри тега p, вы можете:

let str = '<p>awesometext:data</p><p>othertext:data</p><p>sss:sddd</p>';
let matches = str.replace(/<p>|</p>/gi, ' ').trim().match(/([a-z]+?:[a-z]+)/gi);

matches вернет массив строк. Обратите внимание, что приведенное выше выражение не подходит для крайних случаев. т.е. ведущие / следовые пробелы и т. д.

Мне нужен PHP, но не javascript

Dumitru 31.12.2018 12:29

Другие вопросы по теме