Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将html标记环绕第一个单词后的所有文本_Php_Html_Regex_Preg Match - Fatal编程技术网

Php 将html标记环绕第一个单词后的所有文本

Php 将html标记环绕第一个单词后的所有文本,php,html,regex,preg-match,Php,Html,Regex,Preg Match,如何重写这段代码,使其在第一个单词后的最后一个单词周围包装html标记 preg_replace('/(?<=\>)\b\w*\b|^\w*\b/', '<span class="color_red">$0</span>', $atts['title']); preg_replace('/(?)\b\w*\b | ^\w*\b/'、'$0'、$atts['title']); 此时,此正则表达式将在字符串的第一个单词周围包装标记。我已经试过了,但不起作用 p

如何重写这段代码,使其在第一个单词后的最后一个单词周围包装html标记

preg_replace('/(?<=\>)\b\w*\b|^\w*\b/', '<span class="color_red">$0</span>', $atts['title']);
preg_replace('/(?)\b\w*\b | ^\w*\b/'、'$0'、$atts['title']);
此时,此正则表达式将在字符串的第一个单词周围包装标记。我已经试过了,但不起作用

preg_replace('/(?<=\>)\b\w*\b|^\w*\b/', '<span class="color_red">$1</span>', $atts['title']);
preg_替换('/(?)\b\w*\b | ^\w*\b/'、'$1'、$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>
效率解决方案
可再生能源解决方案
不小心让大写字母锁上了并键入了一些东西

或者请提供另一个有效的解决方案。

匹配第一个单词后的所有内容,直到最后一个非空白

preg_replace('/\b[\w\'-]+\W+\K.*\S/s', '<span class="color_red">$0</span>', $atts['title']);
preg\u replace('/\b[\w\'-]+\w+\K.*\S/S'、'$0'、$atts['title']);
  • \b
    匹配第一个单词的首字母
  • [\w'-]+
    中的一个或多个单引号和连字符
  • \W+
    一个或多个非单词字符
  • 比赛开始
  • *\S
    直到最后一个非空白字符之前的任何内容
  • s
    -用于使点匹配换行符
  • 如果输入为utf-8,则添加
    u
    标志以调整
    \b
    \w
    \w

匹配第一个单词后的所有内容,直到最后一个非空白

preg_replace('/\b[\w\'-]+\W+\K.*\S/s', '<span class="color_red">$0</span>', $atts['title']);
preg\u replace('/\b[\w\'-]+\w+\K.*\S/S'、'$0'、$atts['title']);
  • \b
    匹配第一个单词的首字母
  • [\w'-]+
    中的一个或多个单引号和连字符
  • \W+
    一个或多个非单词字符
  • 比赛开始
  • *\S
    直到最后一个非空白字符之前的任何内容
  • s
    -用于使点匹配换行符
  • 如果输入为utf-8,则添加
    u
    标志以调整
    \b
    \w
    \w

你也可以用这种方法来做。

$data = "Write your description here";
list($first,$last) = explode(" ", $data,2);
echo $newstring = $first." <span>".$last."</span>";
$data=“在这里写下您的描述”;
列表($first,$last)=分解(“,$data,2);
echo$newstring=$first.“$last.”;

你也可以用这种方法来做。

$data = "Write your description here";
list($first,$last) = explode(" ", $data,2);
echo $newstring = $first." <span>".$last."</span>";
$data=“在这里写下您的描述”;
列表($first,$last)=分解(“,$data,2);
echo$newstring=$first.“$last.”;

您可以使用带标签()。我并不是想剥掉标签。我想添加标记。假设您的字符串是“在此处写入您的描述”,而您想要的o/p是“在此处写入您的描述”,是否正确?或者字符串中只有两个单词?把你的绳子给我reference@Priyank对第一个单词之后的所有内容都应该用标签包装起来。我添加了一些示例。您可以使用strip_标记()。我并不是想剥掉标签。我想添加标记。假设您的字符串是“在此处写入您的描述”,而您想要的o/p是“在此处写入您的描述”,是否正确?或者字符串中只有两个单词?把你的绳子给我reference@Priyank对第一个单词之后的所有内容都应该用标签包装起来。我添加了一些示例。如何添加第一个单词?如何添加第一个单词?