如何使用正则表达式删除美元格式

时间:2010-12-03 18:26:24

标签: regex coldfusion

我正在尝试从字符串'$ 1,109,889.23'中删除美元格式。我尝试使用正则表达式:

"[^\\d]" 

然后我得到了逗号。

有任何帮助吗?提前谢谢。

8 个答案:

答案 0 :(得分:7)

你不需要正则表达式。

只需使用lsParseCurrency

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

Example on trycf.com收益:

1109889.23

根据Leigh下面的提交...如果你的语言环境不是,.用于千位和小数分隔符(分别)...请确保指定语言环境也是,例如:

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

答案 1 :(得分:2)

如何对,$进行搜索和替换?

但如果你要这样做的话。

[^\d.]+

答案 2 :(得分:2)

我正在使用ColdFusion。 [^ \ d。]与上面提到的eldarerathis一样有效。

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

答案 3 :(得分:0)

由于$是正则表达式中的元字符(表示“字符串结尾”或“行尾”,具体取决于当前设置),因此需要将其转义为\$。但是,如果它只是一个固定字符,为什么要使用正则表达式呢?

答案 4 :(得分:0)

[\d,.]+会给你数字部分。 Here是你在Rubular上的例子。

答案 5 :(得分:0)

这对你有用吗? ^ \ $

答案 6 :(得分:0)

我不确定我到底知道你想要什么,但似乎在你的例子中你最终想要“1,109,889.23”。如果是这种情况,为什么不简单地选择使用[\d,.\x20]+(注意句点没有被转义,因为它在字符集中,并注意\ x20选择空格,如果它们使用它而不是逗号)选择只是数字。如果您想要选择不属于该数字的所有内容(如您的示例所示),那么您只需搜索[^\d,.\x20]即可。这适用于任何货币格式,而不仅仅是使用美元符号的货币格式。它还允许多种类型的标点符号,例如允许空格而不是逗号分隔多个数字。但是,我同意Tim Pietzcker的说法,正则表达式可能不适合这项工作。

答案 7 :(得分:0)

在Java中:

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