【问题标题】:preg_replace a specific string with h5 tagspreg_replace 使用 h5 标签替换特定字符串
【发布时间】:2015-08-07 16:13:12
【问题描述】:

我想使用 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。

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

【问题讨论】:

  • 啊,就是这样!现在可以使用,感谢您的快速响应!

标签: php regex preg-replace


【解决方案1】:

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

  • 不需要单引号:

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

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

我还将匹配第二个捕获组中的\n,或者使用\R 进行任何换行。或者甚至可能是 #m 标志和行尾 $ 锚。

【讨论】:

  • 喜欢那些时髦的 ↑ 而不是 ^'s - 更干净/更精确。我可能会效仿。
  • (他们是发布答案的唯一原因……:)
  • 现在再次提高我的旧 ANSI 艺术技能,啊,BBS 的美好时光。
  • ↳ 作为一个选项,您也可以使用(\*{3}) 而不是(\*\*\*) :) ↑
猜你喜欢
  • 2015-06-07
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多