我有一个字符串" Hello World!" ,我想替换其中的一些字母并收到" 他的结果! W!r!d!"这意味着我将所有" l" 和" o" 更改为"! " 我找到了函数 preg_replace();
function replace($s){
return preg_replace('/i/', '!', "$s");
}
它只使用一个字母或符号,我想将2个符号更改为"!" 。
答案 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);
我认为另一种方法是使用array
和str_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);
答案 3 :(得分:1)
改变你的功能;
function replace($s) {
return preg_replace('/[ol]/', '!', $s);
}
阅读有关正则表达式here的更多信息,以进一步了解如何使用正则表达式。