たとえば、次のように置き換えたいと思います 。withこれは私がmargin:0px;
思いついmargin:0;
た正規表現です。$data = preg_replace('/([^\d])0px/', '$1 0', $data);
$1
:
この例で はを表します。
$1
phpが数値を別のキャプチャグループ変数として解釈せず、上記のように空白を使用せずに、数値と組み合わせるにはどうすればよいですか?
たとえば、次のように置き換えたいと思います 。withこれは私がmargin:0px;
思いついmargin:0;
た正規表現です。$data = preg_replace('/([^\d])0px/', '$1 0', $data);
$1
:
この例で はを表します。
$1
phpが数値を別のキャプチャグループ変数として解釈せず、上記のように空白を使用せずに、数値と組み合わせるにはどうすればよいですか?
を使用できます'${1}0'
。詳細については、文字列に関するPHPのドキュメントを参照してください。
preg_replace
ドキュメントでもこれについて説明しています。
ちなみに、代わりにこの正規表現を使用できます(5.2.4以降):
$data = preg_replace('/\D0\Kpx/', '', $data);
\D
に相当する、数字以外のものに一致し[^\d]
ます。
\K
その前にあるすべてのものが一致する必要がありますが、一致自体からは除外されます。したがって、パターンの最初の部分を保存して、それを置換に含める必要はありません。
あなたはこのようなことをしようとしていますか?
<?php
function replace_px($val, $new_val, $str) {
return $new_str = str_replace($val . "px", $new_val, $str);
}
$str = "margin:0px;";
echo replace_px(0, 0, $str);
?>
//出力
margin:0;