正则表达式用PHP替换另一个字符串

时间:2013-06-14 00:03:43

标签: php regex

我不想知道每次需要正则表达式时我需要什么正则表达式,我喜欢学习如何使用正则表达式进行基本的字符串替换。

如何使用一个字符串并用另一个字符串替换为PHP中的正则表达式?

例如,你如何取所有'/'并用'%'替换它们?

5 个答案:

答案 0 :(得分:2)

如果您只想进行基本的字符串替换(即将所有'abc'替换为'123'),则可以使用 str_replace ,这不需要使用正则表达式。对于基本替换,这将更容易设置,应该运行得更快。

如果您想将此作为学习正则表达式的工具(或需要更复杂的替换),那么 preg_replace 就是您需要的功能。

答案 1 :(得分:1)

你应该研究preg_replace。对于你的问题

 $string = "some/with/lots/of/slashes";
 $new_string = preg_replace("/\//","%",$string);
 echo $new_string;

答案 2 :(得分:0)

  

我想学习如何使用正则表达式替换基本字符串。

这个论坛有点宽泛。但是,要回答一个更具体的问题,如:

  

例如,你如何采取所有' /'并用'%'替换它们?

你可以这样做:

$result = preg_replace('#\/#', '%', 'Here/is/a/test/string.');

这是Rubular that proves the regex

答案 3 :(得分:0)

注意,您不限于使用公共/分隔符,这意味着在使用正斜杠时,通常更容易更改为不同的分隔符EG。

$mystring = 'this/is/random';
$result = preg_replace('#/#', '%', $mystring);

这会使'#'成为分隔符,而不是标准'/',这意味着你不需要转义斜杠。

答案 4 :(得分:0)

我会使用strtr来完成这项工作,这非常适合字符映射,例如

strtr('My string has / slashes /', '/', '%');

如果您还想用短划线替换字母a

strtr('My string has / slashes /', '/a', '%-');

如您所见,第二个和第三个参数定义了转换图。