使用preg_Match php获取包装元素

2022-03-29 00:00:00 php preg-match

我需要一个preg_match代码,它将检测给定的字符串并获取其包装元素。 我有一个字符串和一个html代码,如下所示:

$string = "My text";
$html = "<div><p class='text'>My text</p><span>My text</span></div>";

所以我需要创建一个函数,该函数将返回包装字符串的元素,如下所示:

$element = get_wrapper($string, $html);

function get_wrapper($str, $code){
    //code here that has preg_match and return the wrapper element
}

返回值将是数组,因为它有两个可能的返回值:<p class='text'></p><span></span>

任何人都可以给我一个正则表达式模式,告诉我如何获取包装给定字符串的HTML元素?

谢谢!非常感谢您的回答。


解决方案

即使regex永远不是DOM解析领域的正确答案,我也得出了另一个(相当简单的)解决方案

<[^>/]+?>My String</.+?>

如果html是好的(即它有结束标记,<;将替换为<;&;,依此类推)。这样,您在第一个正则表达式组中具有开始标记,在第二个组中具有结束标记。

相关文章