我有这些字符串/re/
或/en/
等更换之间的任意2个字符/和/通配符匹配
我想里面全部替换/和/包括2个/
S,这样的:
str_replace("/??/", $replacement, $string);
我有这些字符串/re/
或/en/
等更换之间的任意2个字符/和/通配符匹配
我想里面全部替换/和/包括2个/
S,这样的:
str_replace("/??/", $replacement, $string);
你可能寻找preg_replace。
preg_replace("#/.{1,2}/#", $replacement, $string)
preg_replace("{/../}", $replacement, $string);
这将取代任何两个字符由/
与任何你想要的更换包围的所有实例。如果你知道内容只能是字母数字,那么你可以做\w\w
而不是..
。
如果你需要它适用于任何长度,然后串别人推荐什么:“{} /.+/”会的工作。
注意,我使用{
和}
而不是更常见的/
分隔符,因为它们是有效的,因为你的匹配字符串包含/
。这样我们就不需要逃避/
的匹配实例,使它更容易阅读。
preg_replace('~/[a-z]{2}/~', $replacement, $string);
试试这个:
$in = 'foo/ba/r and /so/me';
$out = preg_replace('/\/[^\/]{2}\//','/REPLACEMENT/',$in);
echo $out;//'foo/REPLACEMENT/r and /REPLACEMENT/me'
基本上,正则表达式匹配任何(子)-string由前斜杠分隔,并包含除斜杠两个(只有两个)字符。所以/s//
不匹配,但/ss/
将
$str = '/rr/';
$replacement = 'a';
echo preg_replace("#/\w{2}/#", $replacement, $str);
“那些2 /”?那是什么? – xdazz
我的意思是开始的'/'和结尾'/' – simPod