めも

メモ.

pythonで単位付きの数値の文字列(例:100円, 100kg)の数値のみ取り出したい

なぜか下書きで放置されていたので。

parse を用いる

pip install parse にてインストールした後に、

from parse import parse
parse("{:d}{:S}", "500円").fixed, parse("{:d}{:S}", "50.0円").fixed, parse("{:f}{:S}", "50.0円").fixed

結果

((500, '円'), (50, '.0円'), (50.0, '円'))

str.isdecimal(), str.isdigit(), str.isnumeric() を用いる

''.join(c for c in "500円" if c.isdigit()),  ''.join(c for c in "50.0円" if c.isdigit()), ''.join(c for c in "50.0万円" if c.isdecimal())

結果

('500', '500', '500')

str.isdigit() などは . を数値判定できないので

''.join(c for c in "50.0円" if c.isdigit())

の出力も 500 になる点に注意。

以下ドキュメントのstr.isdigit() の項目。

正規表現を用いる

import re
re.sub(r'\D', '', "500円"), re.sub(r'\D', '', "50.0円")

結果

('500', '500')

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。