[英]regex to match a specific HTML string with any number of spaces inside it
我有这样的几行代码
<p> <inset></p>
如果字符串在开头<p>
标签和其余部分之间可能有任意数量的空格或制表符(或没有空格)。 我需要更换这些,但我不能让它工作。
我以为这会做到,但它不起作用:
<p>[ \t]+<inset></p>
尝试这个:
$html = preg_replace('#(<p>)\s+(<inset></p>)#', '$1$2', $html);
如果你想要HTML的真正文本修剪,包括你可以遇到的所有内容,例如权利,评论,子元素和所有这些东西,你可以使用TextRangeTrimmer
和TextRange
:
$htmlFragment = '<p> <inset></p>';
$dom = new DOMDocument();
$dom->loadHTML($htmlFragment);
$parent = $dom->getElementsByTagName('body')->item(0);
if (!$parent)
{
throw new Exception('Parent element not found.');
}
$range = new TextRange($parent);
$trimmer = new TextRangeTrimmer($range);
$trimmer->ltrim();
// inner HTML (PHP >= 5.3.6)
foreach($parent->childNodes as $node)
{
echo $dom->saveHTML($node);
}
输出:
<p><inset></p>
我在两个课程中都有一个要点: https : //gist.github.com/1894360/ (codepad viper已关闭)。
请参阅相关问题/答案:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.