【发布时间】:2012-05-04 21:24:44
【问题描述】:
我正在尝试替换匹配的字符串 见下面的例子
<?php
$str="this is going to bold [[this]]";
echo preg_replace("/[[(.*)]]+/i","<b>$1</b>",$str);
?>
所以输出会是这样的
这将加粗这个
编辑:
<?php
$str="bhai bhai *that* -wow- perfect";
$find[0]="/*(.+)*/i";
$find[1]="/-(.+)-/i";
$rep[0]="<b>$1</b>";
$rep[1]="<i>$1</i>";
echo preg_replace($find,$rep,$str);
?>
这是显示警告
警告:preg_replace() [function.preg-replace]:编译失败:在 C:\xampp\htdocs\page.php 第 7 行的偏移量 0 处没有重复内容
【问题讨论】:
-
[]是 PCRE 中的特殊字符,因此必须转义。此外,您可能希望使用非贪婪组。(.*?)否则你会遇到一些有趣的粗体问题。 -
我改成了这个 ...echo preg_replace("/[[+(.*)+]]/i","$1",$str);。 ...但我看到了这个输出............这将是粗体
-
@user1331534 检查我的答案。
标签: php regex preg-replace