2
preg_replace()
またはpreg_replace_callback()
に1つの逆参照を置き換える方法がありますか?たとえば、私はこの正規表現/(\.popup)([\s\.{])/
とこの文字列.popup .popup-option
を持っています。生成される後方参照は、$0 = .popup\s
,$1 = .popup
,$2 = \s
である。 $1
だけを別の文字列で置き換えたいとします。これをどうすればできますか?PHPの正規表現 - 後方参照を1つ置き換える
ありがとうございました。我々はいくつかの置換文字列を返却するコールバックで
$s = '.popup .popup-option'; // original string
echo preg_replace_callback('/(\.popup)([\s\.{])/', function ($m) {
return 'foo' . $m[2]; }, $s);
//=> foo .popup-option
foo
$m[2]
と連結ためだけ$m[1]
を交換行き方:
唯一のシナリオは、それが唯一の '.popup'この正規表現では動作しないことができるということでしたなぜなら、それはスペース、ドット、または{}のいずれかが続く必要があると具体的に言っているからです。いずれにせよ、あなたの答えは '/ \。popup((?= [\ s \。{])| \ z)/' –