2015-07-10 60 views
0

我想使用preg_replace()函数来加粗特定的字符串内容。 $()字符串成功加粗。

  <?php 
     $text=preg_replace("/$()/","<b>$()</b>","$(), you can"); 
      echo $text; 
      ?> 

但是,只要我在圆括号内添加了一些单词,函数就停止了工作。尽管如此,该功能也没有抛出任何错误。

  <?php 
     $text=preg_replace("/$(abc)/","<b>$(abc)</b>","$(abc), you can"); 
      echo $text; 
      ?> 

请问有人可以解释一下吗?提前致谢。

+3

如何以任何方式第一输出是否正确?它不会输出任何接近你所描述的你想要的东西。 – Anonymous

+1

在http://www.regex101.com上检查您的正则表达式,认真地说,这非常值得。 'preg_replace'只会做你所说的! – Martin

+0

@匿名我不明白你的意思...... –

回答

2

第一个正则表达式"worked",因为它在输入的末尾匹配了一个空字符串,并替换为<b>$()</b>

enter image description here

你需要转义特殊符号:

'/\$\(abc\)/' 

IDEONE demo

$text=preg_replace("/\\$\\(abc\\)/","<b>$(abc)</b>","In place of $(abc), you can"); 

输出:In place of <b>$(abc)</b>, you can

+0

谢谢..thumbs了 –

+0

你可以给更多的细节..如何第一个代码工作.......(无转义) –

+0

我加了解释。实际上,'('和')'不是字面括号,只是一个捕获组。 –