1

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

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

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

5 回答 5

5

您可能正在搜索preg_replace

preg_replace("#/.{1,2}/#", $replacement, $string)
于 2012-09-25T08:41:25.150 回答
2
preg_replace("{/../}", $replacement, $string);

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

如果您需要将其应用于任何长度的字符串,那么其他人推荐的:“{/.+/}”将起作用。

请注意,我使用{and}而不是更常见的/分隔符,因为它们是有效的,并且因为您的匹配字符串包含/. 这样我们就不需要逃避匹配的实例,/使其更容易阅读。

于 2012-09-25T08:42:46.010 回答
1

尝试这个:

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

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

于 2012-09-25T08:45:40.170 回答
1
$str = '/rr/';
$replacement = 'a';
echo preg_replace("#/\w{2}/#", $replacement, $str);
于 2012-09-25T08:46:36.723 回答
0
preg_replace('~/[a-z]{2}/~', $replacement, $string);
于 2012-09-25T08:44:02.030 回答