2010-12-03 13 views
3

文字列 '$ 1,109,889.23'からドル形式を削除しようとしています。正規表現でドル形式を取り除く方法

"[^\\d]" 

という正規表現を使用してみましたが、次にコンマを取得しました。

助けが必要ですか?前もって感謝します。

+1

あなたはどの言語を使用していて、どのような機能を呼びますか?なんらかの 'replaceAll()'メソッドでそれを使用すると、うまく動作します(ただし、小数点も削除されるため、 '[^ \ d。]'などの方が良いかもしれません)。その点については、コンマも削除しようとしていますか?私はあなたがこれを表現する方法からはかなり分かりません。 – eldarerathis

+0

私はColdFusionを使用しています。 [^ \ d。]素晴らしい作品です! – CFNinja

答えて

2

私は、ColdFusionを使用しています。 [^ \ d。]は、先に述べたように素晴らしい作品です。

<cfset amt = '$1,109,889.23'> 
    <cfset newAmt = ReReplace(amt, "[^\d.]", "","ALL") > 
    <cfoutput>#newAmt#</cfoutput> 
0

$は正規表現のメタ文字です(現在の設定に応じて「文字列の終わり」または「行末」を意味します)ので、\$にエスケープする必要があります。しかし、固定文字が1つだけの場合、なぜ正規表現を使うのですか?

+0

正規表現エンジンに依存します! JSでは、 '$'のエスケープは '$$'です。 – Rudu

+0

JSとは何ですか?どこでも '$$ 'が使われているのを見たことはありません。しかし、私はすべてを見ていない。 –

2

,$の検索と交換についてはどうですか?

しかし、もしそれをやろうとしたら。

[^\d.]+

+0

私は知っている、私はそれを難し​​い方法でやらなければならなかった。 – CFNinja

+0

はネガを忘れないでください... –

0

[\d,.]+はあなたの番号部分を与えるだろう。 HereはRubularのあなたの例です。

+0

これは$記号以外のすべてにマッチします。コンマも取り除こうと思っていたので、[^ \ d。]はうまくいった。 – CFNinja

+0

あなたはドルを取り除きたいと書いています。 – detunized

+0

"ドル形式"はドルではありません。ありがとう – CFNinja

0

これはあなたのために機能しますか? ^ \ $

0

私はあなたが望むものを正確に理解していませんが、あなたの例では "1,109,889.23"になりたいと思われます。これが当てはまる場合は、[\d,.\x20]+を選択するだけです(ピリオドはエスケープされません。文字セット内にあるので、ピリオドはエスケープされません。また、カンマではなくピリオドを使用する場合はスペースを選択することに注意してください)。数。あなたの例が示すように、数字の一部ではないものをすべて選択したい場合は、[^\d,.\x20]を検索するだけです。これは、ドル記号を使用するものだけでなく、どの通貨フォーマットでも機能します。カンマではなくスペースで複数の数字を区切るなど、複数の種類の句読点を使用することもできます。しかし、Tim Pietzcker氏によれば、正規表現は仕事の正しいツールではないかもしれないと私は同意します。 Javaでは

+0

私は戻ってみたい:1109889.23。この作品は> [^ \ d。] – CFNinja

0

String newString = oldString.replaceAll("$", ""); 
7

これには正規表現は必要ありません。

だけlsParseCurrency使用:ヤーロケールが,.を使用していない何かである場合は、以下のリーcommmentを1として

1109889.23

...:

numericValue = lsParseCurrency('$1,109,889.23'); writeOutput(numericValue);

Example on trycf.com収量を千と小数点の区切り記号(それぞれ)...ロケールも指定してください。例:

numericValue = lsParseCurrency('$1,109,889.23', 'en_us');

+1

これは正解です。正規表現は必要ありません。 –

+2

真。ロケールen_USを明示的に指定するのが最適です。それ以外の場合は、現在のJVMロケールの通貨ルール(異なる場合があります)を使用してクラッシュします。 – Leigh

+0

(明らかにjvmロケールがすでにen_USの場合は問題ありません;-) – Leigh

関連する問題