用/和/替换通配符匹配之间的任意2个字符

时间:2012-09-25 08:38:59

标签: php string replace

我有这些字符串/re//en/等。

我想替换/和/包括2 / s中的所有内容,如下所示:

str_replace("/??/", $replacement, $string);

5 个答案:

答案 0 :(得分:5)

您可能正在搜索preg_replace

preg_replace("#/.{1,2}/#", $replacement, $string)

答案 1 :(得分:2)

preg_replace("{/../}", $replacement, $string);

这将替换/包围的任何两个字符的所有实例,无论您想要什么替换。如果您知道内容只是字母数字,那么您可以\w\w代替..

如果你需要将它应用于任何长度的字符串,那么其他人建议:“{/。+ /}”会起作用。

注意,我使用{}代替更常见的/分隔符,因为它们有效,并且因为匹配的字符串包含/。这样我们就不需要转义匹配的/实例,使其更容易阅读。

答案 2 :(得分:1)

试试这个:

$in = 'foo/ba/r and /so/me';
$out = preg_replace('/\/[^\/]{2}\//','/REPLACEMENT/',$in);
echo $out;//'foo/REPLACEMENT/r and /REPLACEMENT/me'

基本上,正则表达式匹配由正斜杠分隔的任何(子)字符串,并且包含除正斜杠之外的两个(且仅两个)字符。因此/s//将不会匹配,但/ss/

答案 3 :(得分:1)

$str = '/rr/';
$replacement = 'a';
echo preg_replace("#/\w{2}/#", $replacement, $str);

答案 4 :(得分:0)

preg_replace('~/[a-z]{2}/~', $replacement, $string);