我有此代码:
<p><br>< br> </ strong> </ div>
因此,我需要匹配并替换仅位于“ ”和“ [a-zA-Z] +>”之间的“ \ s”或“”(空),因此基本上并使用“ / ([] +)[az] +> / g”,但它匹配所有链,我只需要匹配单个字符并替换它。
顺便说一句,现在我正在使用下面的代码替换空字符,这意味着删除空字符。但是我想知道我问过是否可能。 谢谢。
//this code replace what I need
$htmlfixed = preg_replace('/(?<=<\/)([ ]+)(?=[a-zA-Z]+>)/', '', $html);
答案 0 :(得分:1)
这可能是实现此目标的一种方法,请参见{strong> EXPLANATION ,此处Regex
const regex = /(<\/?)[\s]/gm;
const str = `<p><br>< br> </ strong> </ div>`;
const subst = `$1`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log(result);
答案 1 :(得分:1)
您现有的代码也会删除该标签。您只需要删除</
和标记之间的空格,即可使用(?<=</)\s+
的正则表达式,即,以\s+
开头的空格(</
):>
$html = '<p><br>< br> </ strong> </ div>';
$htmlfixed = preg_replace('#(?<=</)\s+#', '', $html);
echo $htmlfixed;
输出:
<p><br>< br> </strong> </div>