5

为了好玩,我决定做一些类似于降价的东西。凭借我过去在正则表达式方面的一些小经验,我知道它们是多么强大,所以它们将是我所需要的。

所以,如果我有这个字符串:

    Hello **bold** world

如何使用 preg_replace 将其转换为:

    Hello <b>bold</b> world

我假设这样的事情?

    $input = "Hello **bold** world";
    $output = preg_replace("/(\*\*).*?(\*\*/)", "<b></b>", $input);
4

4 回答 4

9

关:

$input = "Hello **bold** world";
$output = preg_replace("/\*\*(.*?)\*\*/", "<b>$1</b>", $input);
于 2010-10-25T21:56:47.753 回答
2

我相信有一个用于渲染 Markdown 的 PHP 包。与其自己动手,不如尝试使用已经编写和测试的现有代码集。

于 2010-10-25T21:59:05.067 回答
1

嗯,我想这可以工作

$output = preg_replace('/\*\*(.*?)\*\*/', '<b>$1</b>', $input);

您找到所有序列**something**,然后用粗体标记替换找到的整个序列,并在其中 (the $1) 第一个捕获的组(表达式中的括号)。

于 2010-10-25T22:00:46.207 回答
0
$output = preg_replace("/\*\*(.*?)\*\*/", "<b>$1</b>", $input);
于 2010-10-25T22:01:29.373 回答