トップページに戻る    次の正規表現パズルへ    前の正規表現パズルへ

2-36 小数第4位以下と小数第3位の0を削除

正規表現パズル

置換を使って、
小数第4位以下の数字を削除する。
また、小数第3位は0なら削除する。

置換前


置換後


対象データ

123
456.
789.0
789.000
789.0000
789.1
123.45
123.4567
123.450
123.4500
123.456


正規表現

(?<=\.[0-9]{2})(?:0|([^0]))[0-9]*$
を
\1
に置換

別解

((?<=\.[0-9]{2}[1-9])|(?<=\.[0-9]{2}(?=0)))[0-9]*$
を削除


解説

後方参照を使う方法が分かりやすいでしょう。
別解のように、肯定戻り読みの論理和を使ってもいいです。