私はこれらの文字列/re/
などを持っています/en/
。
2を含む/および/内のすべてを置き換えたいのです/
が、次のようになります。
str_replace("/??/", $replacement, $string);
おそらくpreg_replaceを検索しています。
preg_replace("#/.{1,2}/#", $replacement, $string)
preg_replace("{/../}", $replacement, $string);
これにより、囲まれた2つの文字のすべてのインスタンスが、必要/
な置換に置き換えられます。内容が英数字のみになることがわかっている場合は、の\w\w
代わりに行うことができます..
。
任意の長さの文字列に適用する必要がある場合は、他の人が推奨している「{/.+/}」が機能します。
有効であり、一致する文字列に。が含まれているため、より一般的な区切り文字の代わりに{
とを使用していることに注意してください。そうすれば、一致したインスタンスをエスケープして、少し読みやすくする必要がなくなります。}
/
/
/
これを試して:
$in = 'foo/ba/r and /so/me';
$out = preg_replace('/\/[^\/]{2}\//','/REPLACEMENT/',$in);
echo $out;//'foo/REPLACEMENT/r and /REPLACEMENT/me'
基本的に、正規表現は、スラッシュで区切られた任意の(サブ)文字列に一致し、スラッシュを除いて2文字(および2文字のみ)を含みます。したがって/s//
、一致しませんが、一致し/ss/
ます
$str = '/rr/';
$replacement = 'a';
echo preg_replace("#/\w{2}/#", $replacement, $str);
preg_replace('~/[a-z]{2}/~', $replacement, $string);