preg_replace 带有 h5 标签的特定字符串

preg_replace a specific string with h5 tags

我想使用 preg_replace 执行以下操作:

$text = "
Lorem ipsum dolor sit amet
***consectetuer adipiscing elit
Aenean commodo ligula eget dolor
Aenean massa
"

$regex = "#('\***')(.*?)\n#";
$text = preg_replace($regex1,"<h5></h5>", $text);

比输出:

Lorem ipsum dolor sit amet
<h5>consectetuer adipiscing elit</h5>
Aenean commodo ligula eget dolor
Aenean massa

所以用开头的 H5 替换三个 *,然后用结尾的 H5 替换三个 * 之后的第一个换行符。

我尝试了很多正则表达式模式,但都没有成功。由于我对此不熟悉,希望有人能帮助我?

你的正则表达式是正确的。

  • 不需要单引号:

    $regex = "#('\***')(.*?)\n#";
                ↑    ↑
    
  • 每个文字*需要转义:

    $regex = "#(\*\*\*)(.*?)\n#";
    

我还会匹配第二个捕获组中的 \n,或者使用 \R 作为任何换行符。或者甚至 #m 标志和行结束 $ 锚点。