Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
将第一个和第二个单词包装在span Clases PHP中_Php_Regex_Preg Replace_Pcre - Fatal编程技术网

将第一个和第二个单词包装在span Clases PHP中

将第一个和第二个单词包装在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

我使用的是使用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</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>