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
标志和行结束 $
锚点。
我想使用 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
标志和行结束 $
锚点。