小数点以下が全て0であればreplaceAll
を使って削除します。
RegExp reg = RegExp(r'\.0+$');
print('100.0'.replaceAll(reg, '')); // 100
目次
正規表現の解説
\.
: ピリオド(小数点)をエスケープした文字です。ピリオドは正規表現において特別な意味を持つため、通常の文字として扱いたい場合にエスケープします。0+
: 数字 “0” が 1 回以上繰り返されるパターンです。つまり、小数点以下が “0” で終わる場合にマッチします。$
: 行末を示すアンカーです。この正規表現では、文字列全体の末尾にマッチするようになっています。
したがって、RegExp(r'\.0+$')
は、文字列の末尾が “0” で終わる場合にその部分にマッチします。これを replaceAll
メソッドで空文字列に置き換えることで、その部分を削除する効果があります。
例えば、123.45000
の場合、この正規表現は “000” にマッチし、それを空文字列に置き換えることで 123.45
に変換されます。
Comment