将第一个单词后面的所有文本的html标签换行
问题描述:
如何重写此代码,使其在第一个单词之后的最后单词周围包装html标签;将第一个单词后面的所有文本的html标签换行
preg_replace('/(?<=\>)\b\w*\b|^\w*\b/', '<span class="color_red">$0</span>', $atts['title']);
此刻,这个正则表达式将围绕字符串中的第一个单词包装标签。我已经尝试过,但不起作用;
preg_replace('/(?<=\>)\b\w*\b|^\w*\b/', '<span class="color_red">$1</span>', $atts['title']);
这里是一些例子;
Efficiency <span class="color_red">solutions</span>
Renewable <span class="color_red">Energy Solutions</span>
Accidentally <span class="color_red">left the caps lock on and typed something</span>
或请提供另一种可行的解决方案。
答
要在character class匹配的第一个字之后一切,直到最后一个非空白
preg_replace('/\b[\w\'-]+\W+\K.*\S/s', '<span class="color_red">$0</span>', $atts['title']);
-
\b
场比赛第一个字 -
[\w'-]+
一个或多个word characters,单引号和连字符初始索word boundary -
\W+
一个或多个非单词字符 -
\K
resets开始报道比赛 -
.*\S
什么,直到最后一个非空白字符 -
s
的 - flag为了使点匹配换行符 - 如果输入的是UTF-8,加
u
标志unicode regex调整\b
,\w
,\W
答
你可以用这种方式也做到这一点..
$data = "Write your description here";
list($first,$last) = explode(" ", $data,2);
echo $newstring = $first." <span>".$last."</span>";
可以使用用strip_tags()。 http://php.net/manual/en/function.strip-tags.php – Priyank
我不想去掉标签。我想添加标签。 – LogicDev
假设你的字符串是“在这里写下你的描述” 和你想要的o/p是“在这里写你的描述” 这是正确的吗? – Priyank