REGEX – PHP Получить только полужирный раздел в строке

Я новичок в Regex. У меня есть строка вроде:

Hello <b>ABCD</b> World or <b>ABCD</b>Hello World 

Я в основном хочу сохранить текст внутри жирных тегов, но удалить все остальные символы в строке.

Я нашел код для удаления полужирной части в строке:

 $string = 'This is <b>an</b> example <b>text</b>'; echo preg_replace('/(<b>.+?)+(<\/b>)/i', '', $string); 

Итак, как мне заставить работать работать наоборот?

С уважением Ахмар

Related of "REGEX – PHP Получить только полужирный раздел в строке"

Если вы хотите извлечь данные из HTML или XML-документа, используйте парсер DOM вместо регулярного выражения. В то время как регулярное выражение будет работать и в простых случаях, оно может стать странным, если прецедент становится более сложным или неожиданные изменения входных данных. Парсер DOM более стабилен и удобен для этой цели.

Пример кода:

 $doc = new DOMDocument(); $doc->loadHTML('Hello <b>ABCD</b> World'); foreach($doc->getElementsByTagName('b') as $element) { echo $element->nodeValue; } 

используйте preg_match_all:

 preg_match_all("'<b>(.*?)</b>'si", $text, $match); foreach($match[1] as $val) { echo $val."<br>"; } 

Попробуй это

 function getTextBetweenTags($string, $tagname) { $pattern = "/<$tagname ?.*>(.*)<\/$tagname>/"; preg_match_all($pattern, $string, $matches); return $matches[1]; } $str = 'This is <b>an example text</b>'; $txt = getTextBetweenTags($str, "b"); print_r($txt);