我需要一个正则表达式来匹配和替换包含简单 DOM Html 解析器中整个段落标签的连续字符格式化标签
输入:
<p><b><i>Lorem Ipsum Content</i></b></p>
预期输出:<p>Lorem Ipsum</p>
在下面的例子中,正则表达式应该只匹配和替换 <b>
标签,因为这是唯一包含整个段落标签的标签
例如:输入:<p><b>Text <i> some more text </i>text inside </b></p>
输出:<p>Text <i> some more text </i>text inside </p>
谢谢。
最佳答案
它看起来像这样:
foreach($html->find('p') as $p) {
while(preg_match('/^<([^>]+)>(.*)<\/\1>$/', $p->innertext, $m)){
$p->innertext = $m[2];
}
}
请注意,正则表达式中的 \1
与第一个捕获组中的 html 标签名称相匹配,这可能不是必需的,但我这样做是为了获得奖励。
关于php - 用于删除连续字符格式标记的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43062444/