文字列 '$ 1,109,889.23'からドル形式を削除しようとしています。正規表現でドル形式を取り除く方法
"[^\\d]"
という正規表現を使用してみましたが、次にコンマを取得しました。
助けが必要ですか?前もって感謝します。
文字列 '$ 1,109,889.23'からドル形式を削除しようとしています。正規表現でドル形式を取り除く方法
"[^\\d]"
という正規表現を使用してみましたが、次にコンマを取得しました。
助けが必要ですか?前もって感謝します。
私は、ColdFusionを使用しています。 [^ \ d。]は、先に述べたように素晴らしい作品です。
<cfset amt = '$1,109,889.23'>
<cfset newAmt = ReReplace(amt, "[^\d.]", "","ALL") >
<cfoutput>#newAmt#</cfoutput>
$
は正規表現のメタ文字です(現在の設定に応じて「文字列の終わり」または「行末」を意味します)ので、\$
にエスケープする必要があります。しかし、固定文字が1つだけの場合、なぜ正規表現を使うのですか?
正規表現エンジンに依存します! JSでは、 '$'のエスケープは '$$'です。 – Rudu
JSとは何ですか?どこでも '$$ 'が使われているのを見たことはありません。しかし、私はすべてを見ていない。 –
,
と$
の検索と交換についてはどうですか?
しかし、もしそれをやろうとしたら。
[^\d.]+
私は知っている、私はそれを難しい方法でやらなければならなかった。 – CFNinja
はネガを忘れないでください... –
これはあなたのために機能しますか? ^ \ $
私はあなたが望むものを正確に理解していませんが、あなたの例では "1,109,889.23"になりたいと思われます。これが当てはまる場合は、[\d,.\x20]+
を選択するだけです(ピリオドはエスケープされません。文字セット内にあるので、ピリオドはエスケープされません。また、カンマではなくピリオドを使用する場合はスペースを選択することに注意してください)。数。あなたの例が示すように、数字の一部ではないものをすべて選択したい場合は、[^\d,.\x20]
を検索するだけです。これは、ドル記号を使用するものだけでなく、どの通貨フォーマットでも機能します。カンマではなくスペースで複数の数字を区切るなど、複数の種類の句読点を使用することもできます。しかし、Tim Pietzcker氏によれば、正規表現は仕事の正しいツールではないかもしれないと私は同意します。 Javaでは
私は戻ってみたい:1109889.23。この作品は> [^ \ d。] – CFNinja
:
String newString = oldString.replaceAll("$", "");
これには正規表現は必要ありません。
だけ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');
あなたはどの言語を使用していて、どのような機能を呼びますか?なんらかの 'replaceAll()'メソッドでそれを使用すると、うまく動作します(ただし、小数点も削除されるため、 '[^ \ d。]'などの方が良いかもしれません)。その点については、コンマも削除しようとしていますか?私はあなたがこれを表現する方法からはかなり分かりません。 – eldarerathis
私はColdFusionを使用しています。 [^ \ d。]素晴らしい作品です! – CFNinja