我正在尝试从字符串'$ 1,109,889.23'中删除美元格式。我尝试使用正则表达式:
"[^\\d]"
然后我得到了逗号。
有任何帮助吗?提前谢谢。
答案 0 :(得分:7)
你不需要正则表达式。
只需使用lsParseCurrency
:
numericValue = lsParseCurrency('$1,109,889.23');
writeOutput(numericValue);
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("$", "");