1

preg replaceを使用して、3桁の各グループの間にスペースを挿入して数値を区切ります。

$alexa_rank_raw = 8389876;

$alexa_rank = preg_replace("/(\d{3})/", '$1.', $alexa_rank_raw);

// alexa rank becomes: 838.987.6

最終的な番号が次のようになるように、どのように置換を行うことができますか?

8.389.876

何か案は?

4

1 に答える 1

4

あなたが探しているnumber_format

$rank = number_format($alexa_rank_raw, 0, ",", ".");

しかし、ここに正規表現バージョンもあります。なぜですか?

$rank = preg_replace('/(\d{1,3})(?=(\d{3})+$)/', '$1.', $alexa_rank_raw);

仕組み:最大3桁のグループに貪欲に(可能な限り最大3桁)一致しますが、正の先読みを使用して、一致したグループが最後まで終了する位置から3桁の正確な倍数があることを表明します入力の最後まで。

実際の動作をご覧ください

于 2013-01-17T23:20:13.073 に答える