PHP函数类似于这个JavaScript函数

时间:2010-04-30 05:24:58

标签: php javascript function preg-replace

我需要在PHP中使用类似的JavaScript函数

text = text.replace(/ffc/g, "Hello");

我认为preg_replace会这样做,但我不确定如何编写表达式..

我希望正则表达式类似于上面的/ffc/g,我需要的是在执行替换时匹配完整的单词和大小写...

5 个答案:

答案 0 :(得分:5)

$text = preg_replace('/ffc/', 'replacement text',  $subject);

PHP的在线手册非常棒,是其中一种语言的最佳功能:

http://php.net/preg_replace

答案 1 :(得分:1)

只需使用str_replace函数:

$text = str_replace('ffc', 'Hello', $text);

在这里使用regexp是一个巨大的过度使用。

答案 2 :(得分:0)

的preg_replace(); 会做的。

  

<强>阐释:

preg_replace  (  mixed $pattern  ,  mixed $replacement  ,  mixed $subject  [,  int $limit = -1  [,  int &$count  ]] )
The pattern to search for. It can be either a string or an array with
     

的字符串。

The e modifier makes preg_replace() treat the replacement
     

参数作为PHP代码后   适当的引用替代是   完成。提示:确保更换   构成有效的PHP代码字符串,   否则PHP会抱怨一个   在包含的行处解析错误   的preg_replace()。

     

字符串或带有字符串的数组   更换。如果此参数是字符串   而pattern参数是一个数组,   所有模式都将被替换   串。如果两种模式和   替换参数是数组,   每个模式都将被替换   替代对手。如果有   更换中的元素更少   数组比模式数组中的任何数组   额外的模式将被替换为   空字符串。

replacement may contain references of the form \\n or (since PHP 4.0.4)
     

$ n,后一种形式是   首选的。每个这样的参考   将被捕获​​的文本取代   通过第n个括号模式。 ñ   可以是0到99,\ 0或$ 0   是指与之匹配的文本   整个模式。打开括号是   从左到右计数(开始   从1)获得的数量   捕获子模式。使用反斜杠   替代,它必须加倍   (“\\”PHP字符串)。

When working with a replacement pattern where a backreference is
     

紧接着是另一个号码   (即:放一个字面数字   紧接着匹配的模式后),   你不能用熟悉的\ 1   您的反向引用的表示法。 \ 11,   例如,会混淆   preg_replace()因为它不知道   你是否想要\ 1反向引用   \后面是文字1,或\ 11   反向引用后面没有任何内容。在   这种情况下的解决方案是使用   \ $ {1} 1。这会创建一个孤立的$ 1   反向引用,将1作为一个   文字。

When using the e modifier, this function escapes some characters
     

(即',“,\和NULL)中的   替换的字符串   反向引用。这样做是为了确保   没有语法错误   使用单一的反向引用   或双引号(例如   'strlen的(\' $ 1 \ ')+ strlen的( “$ 2”)')。使   确定你知道PHP的字符串   语法确切地知道如何   解释的字符串看起来像。

     

字符串或带字符串的数组   搜索和替换。

If subject is an array, then the search and replace is performed on
     

主题的每个条目,以及回报   value也是一个数组。

     

最大可能的替代品   每个主题字符串中的每个模式。

     

如果指定,则此变量为   充满了替换的数量   完成。   默认为-1(无限制)。

     

preg_replace()返回一个数组if   subject参数是一个数组,或   否则就是一个字符串。

     

如果找到匹配项,则为新主题   将被退回,否则将被录取   将返回不变或NULL   发生错误。

答案 3 :(得分:0)

根据您要求替换完整单词,我建议如下:

$text = preg_replace ('/\bffc\b/', 'Hello', $text);

替换'ffc'的所有实例,并且区分大小写

答案 4 :(得分:-2)

str_replace($needle, $replacement, $haystack);