REGEX - PHP只获取字符串中的粗体部分

Ahm*_*Ali 2 php regex string preg-replace

我是Regex的新手.我有一个字符串:

Hello <b>ABCD</b> World
or 
<b>ABCD</b>Hello World
Run Code Online (Sandbox Code Playgroud)

我基本上希望将文本保留在粗体标记内,但删除字符串中的所有其他字符.

我找到了删除字符串中粗体部分的代码:

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

那么如何让它以相反的方式工作呢?

问候艾哈迈尔

hek*_*mgl 6

DOM如果要从HTML或XML文档中提取数据,请使用解析器而不是正则表达式.虽然正则表达式也可以在简单的情况下工作,但如果用例变得更复杂或输入数据以意想不到的方式发生变化,则会变得奇怪.一个DOM解析器更加稳定,方便的用于这一目的.

示例代码:

$doc = new DOMDocument();
$doc->loadHTML('Hello <b>ABCD</b> World');

foreach($doc->getElementsByTagName('b') as $element) {
    echo $element->nodeValue;
}
Run Code Online (Sandbox Code Playgroud)