代码之家  ›  专栏  ›  技术社区  ›  11teenth

如何使用preg_replace(或类似工具)在php中替换和更新?[副本]

  •  -5
  • 11teenth  · 技术社区  · 7 年前

    这个问题已经有了答案:

    我想循环遍历一个数组,将包含标记的特定键/值对转换为HTML。

    因此$comment['comment_text']的示例值为:

    This has *bolded* text
    

    应该变成:

    This has <strong>bolded</strong> text
    

    以下是我的尝试:

    $pattern = "/\*\b.*?\b\*/i";
    $newComment = preg_replace($pattern, "<strong>$&</strong>", 
    $comment['comment_text']);
    

    我得到的是:

    这个有 $和 文本

    我意识到我正在将JavaScript和PHP混合在一起,但是阅读关于PHP中的后引用并没有使事情变得更清楚。

    我的字符串可能有多个粗体(在标记中)实例…

    感谢您的帮助。

    更新: 抱歉-我没有意识到stackoverflow正在将星号转换为斜体。我将示例转换为代码。

    另外,我的困惑归结为使用了0美元和1美元。我还是不完全理解。我认为这些数字指的是字符串中的匹配项……所以如果你有5个实例,你可以用0到4美元来指它们。

    如果你用0美元,你会得到:

    This has <strong>*bolded*</strong> text
    

    但是如果你用1美元,你会得到想要的结果。

    1 回复  |  直到 7 年前
        1
  •  0
  •   mickmackusa Tom Green    7 年前

    做这个。

     $pattern = "/\*\b(.*?)\b\*/";
     $newComment = preg_replace($pattern, "<strong>$1</strong>", $comment['comment_text']);
    

    在这里 $1 指组1匹配。这里我假设你想在 ** 粗体。