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**を見つけてから、見つかったシーケンス全体を太字のタグで置き換え、その中に$1最初にキャプチャされたグループ(式の角かっこ)を入れます。

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