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);

これにより、囲まれた2つの文字のすべてのインスタンスが、必要/な置換に置き換えられます。内容が英数字のみになることがわかっている場合は、の\w\w代わりに行うことができます..

任意の長さの文字列に適用する必要がある場合は、他の人が推奨している「{/.+/}」が機能します。

有効であり、一致する文字列に。が含まれているため、より一般的な区切り文字の代わりに{とを使用していることに注意してください。そうすれば、一致したインスタンスをエスケープして、少し読みやすくする必要がなくなります。}///

于 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'

基本的に、正規表現は、スラッシュで区切られた任意の(サブ)文字列に一致し、スラッシュを除いて2文字(および2文字のみ)を含みます。したがって/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 に答える