Удалить текст, который находится в середине <b></b> - PullRequest
0 голосов
/ 15 февраля 2010

У меня есть текст в середине <b></b> Например:

La  <b>la</b>: the  1  <br></br>Aventuroj  <b>aventuro</b>: adventure  2  <br></br>de  <b>de</b>: by, from, of, since  3  <br></br>Mirlando  <b>miri</b>: marvel, marvel at, wonder<br/><b>lando</b>: country, land  4  <br></br>by  <b>ba</b>: bah, nuts, pooh  5  <br></br>for  <b>for</b>: away  6  <br></br>

Я хотел бы, может быть, регулярное выражение, которое удалит текст и <b></b> из строки

Спасибо

★ ✩

Ответы [ 2 ]

4 голосов
/ 15 февраля 2010

Самый простой способ - использовать preg_replace():

$output = preg_replace('!<b>.*?</b>!s', '', $input);

s на конце - это флаг. См. Список флагов Модификаторы .

с (PCRE_DOTALL)

Если этот модификатор установлен, точка метасимвол в шаблонах совпадений все символы, включая переводы строки. Без этого новые строки исключаются. Этот модификатор эквивалентен Perl's / s модификатор. Отрицательный класс, такой как [^ a] всегда соответствует новой строке характер, независимый от настройки этого модификатора.

Вообще говоря, регулярные выражения - плохой инструмент для запросов и манипулирования HTML или XML. В PHP есть несколько встроенных анализаторов HTML, и для надежного решения вы должны использовать их вместо этого, как правило.

0 голосов
/ 15 февраля 2010
preg_replace("/<b>(.*?)<\/b>/ism","",$str);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...