1

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

您如何在 PHP 中使用一个字符串并将其替换为另一个字符串?

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

4

5 回答 5

2

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

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

于 2013-06-14T00:09:47.363 回答
1

您应该查看preg_replace。对于你的问题

 $string = "some/with/lots/of/slashes";
 $new_string = preg_replace("/\//","%",$string);
 echo $new_string;
于 2013-06-14T00:07:50.983 回答
0

我喜欢学习如何使用正则表达式进行基本的字符串替换。

这对于这个论坛来说有点宽泛。但是,要回答更具体的问题,例如:

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

你可以这样做:

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

这是一个证明正则表达式的Rubular

于 2013-06-14T00:07:48.403 回答
0

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

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

这将使“#”成为分隔符,而不是标准的“/”,因此这意味着您不需要转义斜杠。

于 2013-06-14T00:14:27.840 回答
0

我会简单地这样做,strtr这非常适合字符映射,例如

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

如果您还想a用破折号替换字母:

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

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

于 2013-06-14T01:40:24.730 回答