替换字符串PHP中的元素

时间:2016-12-08 13:52:57

标签: php regex string replace

我有一个字符串" Hello World!" ,我想替换其中的一些字母并收到" 他的结果! W!r!d!"这意味着我将所有" l" " o" 更改为"! " 我找到了函数 preg_replace();

function replace($s){
    return preg_replace('/i/', '!', "$s");
}

它只使用一个字母或符号,我想将2个符号更改为"!"

4 个答案:

答案 0 :(得分:1)

由于您已经在使用正则表达式,为什么不真的然后使用真正寻找的模式?

preg_replace('/l+/', '!', "Hello"); // "He!o" ,so rewrites multiple occurances

如果您希望完全两次出现:

preg_replace('/l{2}/', '!', "Helllo"); // "He!lo" ,so rewrites exactly two occurances

那是怎么回事:

preg_replace('/[lo]/', '!', "Hello"); // "He!!!" ,so rewrites a set of characters

使用在线工具进行一些游戏:https://regex101.com/

答案 1 :(得分:1)

像你一样使用preg_replace

$s = 'Hello World';
echo preg_replace('/[lo]/', '!', $s);

我认为另一种方法是使用arraystr_replace

$s = 'Hello World';
$to_replace = array('o', 'l');
echo str_replace($to_replace, '!', $s);

答案 2 :(得分:1)

这可以使用您尝试的preg_replace()str_replace()

来完成

使用preg_replace(),您需要使用|(OR)元字符

function replace($s){
  return preg_replace('/l|o/', '!', "$s");
} 

使用str_replace()执行此操作,将所有要替换的字母传递给数组,然后将单个替换字符作为字符串(或者,如果要使用多个替换字符,则还传递一个数组)。

str_replace(array("l","o"), "!", $s);

Live Example

答案 3 :(得分:1)

改变你的功能;

function replace($s) {
    return preg_replace('/[ol]/', '!', $s);
}

阅读有关正则表达式here的更多信息,以进一步了解如何使用正则表达式。