我有这些字符串/re/
或/en/
等。
我想替换/和/包括2 /
s中的所有内容,如下所示:
str_replace("/??/", $replacement, $string);
答案 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);