2

たとえば、次のように置き換えたいと思います 。withこれは私がmargin:0px;思いついmargin:0;
た正規表現です。$data = preg_replace('/([^\d])0px/', '$1 0', $data);

$1:この例で はを表します。

$1phpが数値を別のキャプチャグループ変数として解釈せず、上記のように空白を使用せずに、数値と組み合わせるにはどうすればよいですか?

4

2 に答える 2

2

を使用できます'${1}0'。詳細については、文字列に関するPHPのドキュメントを参照してください。

preg_replaceドキュメントでもこれについて説明しています。

ちなみに、代わりにこの正規表現を使用できます(5.2.4以降):

$data = preg_replace('/\D0\Kpx/', '', $data);

\Dに相当する、数字以外のものに一致し[^\d]ます。

\Kその前にあるすべてのものが一致する必要がありますが、一致自体からは除外されます。したがって、パターンの最初の部分を保存して、それを置換に含める必要はありません。

エスケープシーケンスに関するドキュメントは次のとおりです。

于 2013-03-15T10:53:05.330 に答える
2

あなたはこのようなことをしようとしていますか?

<?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;
于 2013-03-15T11:00:49.260 に答える