与其想知道每次需要正则表达式时需要什么正则表达式,我更喜欢学习如何使用正则表达式进行基本的字符串替换。
您如何在 PHP 中使用一个字符串并将其替换为另一个字符串?
例如,您如何获取所有 '/' 并用 '%' 替换它们?
如果你只想做基本的字符串替换(即用'123'替换所有'abc'),那么你可以使用str_replace
不需要使用正则表达式。对于基本替换,这将更容易设置并且应该运行得更快。
如果您想将其用作学习正则表达式的工具(或需要更复杂的替换),那么preg_replace
这就是您需要的功能。
您应该查看preg_replace。对于你的问题
$string = "some/with/lots/of/slashes";
$new_string = preg_replace("/\//","%",$string);
echo $new_string;
我喜欢学习如何使用正则表达式进行基本的字符串替换。
这对于这个论坛来说有点宽泛。但是,要回答更具体的问题,例如:
例如,您如何获取所有 '/' 并用 '%' 替换它们?
你可以这样做:
$result = preg_replace('#\/#', '%', 'Here/is/a/test/string.');
这是一个证明正则表达式的Rubular。
请注意,您不仅限于使用通用/
分隔符,这意味着在使用正斜杠时,通常更容易更改为不同的分隔符 EG。
$mystring = 'this/is/random';
$result = preg_replace('#/#', '%', $mystring);
这将使“#”成为分隔符,而不是标准的“/”,因此这意味着您不需要转义斜杠。
我会简单地这样做,strtr
这非常适合字符映射,例如
strtr('My string has / slashes /', '/', '%');
如果您还想a
用破折号替换字母:
strtr('My string has / slashes /', '/a', '%-');
如您所见,第二个和第三个参数定义了转换映射。