将第一个和第二个单词包装在span Clases PHP中
我使用的是使用php自行生成的导航。我需要将第一个和第二个单词包装在单独的div类中。e、 g将第一个和第二个单词包装在span Clases PHP中,php,regex,preg-replace,pcre,Php,Regex,Preg Replace,Pcre,我使用的是使用php自行生成的导航。我需要将第一个和第二个单词包装在单独的div类中。e、 g <li> <span>First</span> <span class="word">Second</span> Word </li> 第一个第二个单词 目前,我可以使用 $name = preg_replace('/(?<=\>)\b(\w*)\b|^\w*\b/', '<span>$0</sp
<li> <span>First</span> <span class="word">Second</span> Word </li>
第一个第二个单词
目前,我可以使用
$name = preg_replace('/(?<=\>)\b(\w*)\b|^\w*\b/', '<span>$0</span>', $ni->name);
$name=preg_replace('/(?)\b(\w*)\b^\w*\b/','$0',$ni->name);
有人知道我如何修改它来包装前两个单词吗?您可以将单词拆分成一个数组,并替换所需的索引
// Split on spaces.
$name = preg_split("/\s+/", $name);
// Replace the first word.
$name[0] = "<span>" . $name[0] . "</span>";
// Replace the second word.
$name[1] = "<span>" . $name[1] . "</span>";
// Re-create the string.
$name = join(" ", $name);
//在空格上拆分。
$name=preg_split(“/\s+/”,$name);
//替换第一个单词。
$name[0]=“”$名称[0]。"";
//替换第二个单词。
$name[1]=“”$名称[1]。"";
//重新创建字符串。
$name=join(“,$name”);
我不知道我是否理解你,但我认为你需要这个:
$string = '<li> <span>First</span> <span class="word">Second</span> Word </li>';
$name = preg_replace('/(<span(?:.*)>(\w*)<\/span>)/U', '<div>$2</div>', $string);
echo htmlspecialchars($name);
// <li> <div>First</div> <div>Second</div> Word </li>
$string='第一个第二个单词 ';
$name=preg_replace('/(\w*))/U','$2',$string);
echo htmlspecialchars($name);
//第一个第二个单词
或
$string='第一个第二个单词 ';
$name=preg_replace('/(*SKIP)(*FAIL)|\b(\w+)\b(\s*)(\w+)\b/U','1$2$3',$string);
echo htmlspecialchars($name);
//第一个第二个单词
什么是输入,应该输出什么?
$string = '<li> First Second Word </li>';
$name = preg_replace('/<[\/]?\w*>(*SKIP)(*FAIL)|\b(\w+)\b(\s*)(\w+)\b/U', '<span>$1</span>$2<span class="word">$3</span>', $string);
echo htmlspecialchars($name);
// <li> <span>First</span> <span class="word">Second</span> Word </li>