我有这些字符串/re/
等/en/
。
我想替换 / 和 / 中的所有内容,包括 2 /
,如下所示:
str_replace("/??/", $replacement, $string);
您可能正在搜索preg_replace。
preg_replace("#/.{1,2}/#", $replacement, $string)
preg_replace("{/../}", $replacement, $string);
/
这将用您想要的替换替换任何两个字符的所有实例。如果您知道内容只会是字母数字,那么您可以\w\w
代替..
.
如果您需要将其应用于任何长度的字符串,那么其他人推荐的:“{/.+/}”将起作用。
请注意,我使用{
and}
而不是更常见的/
分隔符,因为它们是有效的,并且因为您的匹配字符串包含/
. 这样我们就不需要逃避匹配的实例,/
使其更容易阅读。
尝试这个:
$in = 'foo/ba/r and /so/me';
$out = preg_replace('/\/[^\/]{2}\//','/REPLACEMENT/',$in);
echo $out;//'foo/REPLACEMENT/r and /REPLACEMENT/me'
基本上,正则表达式匹配任何由正斜杠分隔的(子)字符串,并且除了正斜杠之外包含两个(并且只有两个)字符。所以/s//
不会匹配,但/ss/
会
$str = '/rr/';
$replacement = 'a';
echo preg_replace("#/\w{2}/#", $replacement, $str);
preg_replace('~/[a-z]{2}/~', $replacement, $string);