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

时间:2015-08-07 16:13:12

标签: php regex preg-replace

我想使用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>$2</h5>", $text);

而不是输出:

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

所以用开口H5替换三个*,然后用三个*替换为关闭H5后的第一个换行符。

我尝试了许多正则表达式模式,但没有成功。由于我不熟悉这个,我希望有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

你的正则表达式是在正确的轨道上。

  • 单引号没有用:

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

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

我还会匹配第二个捕获组中的\n权限,或者使用\R进行任何换行。或者甚至可能是#m标志,只有行结束$锚。