gpt4 book ai didi

php - 用元素替换每个字符

转载 作者:可可西里 更新时间:2023-11-01 12:20:15 27 4
gpt4 key购买 nike

这就是我的

$str = 'Just a <span class="green">little</span> -text åäö width 123#';

这就是我需要的

跨度和空格的结果,也可能是换行符。

$result = '<span></span><span></span><span></span><span></span> <span></span> <span class="green"><span></span><span></span><span></span><span></span><span></span><span></span></span> <span></span><span></span><span></span><span></span><span></span> <span></span><span></span><span></span> <span></span><span></span><span></span><span></span><span></span> <span></span><span></span><span></span>';

您可能想知道我可能需要它做什么。我想构建一个用 block 表示角色的东西。看起来有点像 Windows XP 上的碎片整理。

问题

  • 将每个字符替换为 <span></span> .
  • 不要触及字符串中已经存在的 HTML 范围(可能很难?)。可以有多个 HTML 元素。
  • 不要触摸空格和换行符。
  • Regexp应该怎么做?还是 Xpath?

到目前为止我做了什么?

我找到了关于正则表达式但没有替换每个字符(摘录空格和换行符)的文章

$result = preg_replace("/???/", "<span></span>", $str);
print_r($result);

最佳答案

您可以使用 preg_replace_callback()

$str = 'Just a <span class="green">little</span> -text åäö width 123#';

function replacement($matches) {
if (strlen($matches[0]) == 1)
{
return "<span></span>";
}
else
{
return $matches[0];
}
}

$result = preg_replace_callback("~<span.*?<\s*/\s*span>|\S~", "replacement", $str);
print_r($result);

这只是根据匹配计算替换字符串。如果匹配长度为 1(已找到非空白字符),则替换为“span”标签,否则已找到 span 标签,重新插入。

关于php - 用元素替换每个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16297324/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com