私は文字列から通貨を取り、それを他の通貨に変換するプログラムを作っています。たとえば、文字列が'the car cost me $13,250'
の場合、$
と13250
を取得する必要があります。私はこの正規表現を既に持っています(?:\£|\$|\€)(?:.{1,})
そのようにしていますが、文字列には複数の価格があり、すべて異なる通貨を使用する可能性がかなり高いです。これは私が効果的にやる方法を知らないものです。Pythonの文字列から通貨量を抽出します
私が知る必要があるのは、文字列からすべての価格を抽出する方法です。私は正規表現がちょうど['$12,250,000','£14,500,123','£120.25']
のようなものを返す場合でも、私は数を取得するには、このようなものを使用することができますので、それは大丈夫だと思う:
prices = ['$12,250','£14,500','£120']
for value in prices:
value.replace(',','')
そして、このような何か通貨を取得する:
for c in prices:
currency = c[0]
次に、価格が整数ではないかもしれないという問題があり、$12.54
のようなものかもしれません。価格の最初のリストを得る方法についてのどんな助けも素晴らしいでしょう。
[Pythonで数値を通貨に解析する](https://stackoverflow.com/questions/37580151/parse-currency-into-numbers-in-python) – Software2
いいえ通貨を数字に変換するのは問題ありません私が示したように、文字列からすべての価格値を最初に取り出す方法を知る必要があります。 –
're.findall'を使用しますか? 're.findall(r :(?:\ | \ $ | \€)(?:[\ d \。\、] {1、})"、s) 'それは完璧ではないでしょう。おそらく偽陽性を後でフィルタリングするほうが簡単でしょう –