全体に小数を含むテキストファイルがあり、小数が >= あるものを切り上げたいと思っていました。そうでない場合は、0.5
小数を切り捨てます。23.7897
24
17.2395
17
< の0.5
場合は、re.sub
次の問題ではありません。
re.sub(r'(\d+)\.[0-4]\d*', r'\1', line)
ただし、>= の場合、置換中に何らかの方法でキャプチャ グループ0.5
を操作する方法があるかどうか疑問に思っていました。\1
関数に送信できるように、どこにでも保存されていますか。
re.sub(r'(\d+)\.[5-9]\d*', roundUp('\1'), line)
whereroundUp()
は、値を表す文字列を返します\1 + 1
。
確かに、\1
からの一致をループせずに、置換中にインラインでインクリメントする方法がありfindall
、整数部分をインクリメントしてから、パターンを再検索して置換する方法re.sub
はありますか?