我需要在PHP中使用类似的JavaScript函数
text = text.replace(/ffc/g, "Hello");
我认为preg_replace会这样做,但我不确定如何编写表达式..
我希望正则表达式类似于上面的/ffc/g
,我需要的是在执行替换时匹配完整的单词和大小写...
答案 0 :(得分:5)
$text = preg_replace('/ffc/', 'replacement text', $subject);
PHP的在线手册非常棒,是其中一种语言的最佳功能:
答案 1 :(得分:1)
答案 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);