我需要将"joe($ 3,004.50)"这样的文字过滤到3004.50,但在正则表达式上很糟糕,找不到合适的解决方案.所以只有数字和句号应该保留 - 其他一切都被过滤掉 我使用C#和VS.net 2008 framework 3.5
jos*_*989 157
这应该这样做:
string s = "joe ($3,004.50)";
s = Regex.Replace(s, "[^0-9.]", "");
Run Code Online (Sandbox Code Playgroud)
Mat*_*hen 33
正则表达式是:
[^0-9.]
Run Code Online (Sandbox Code Playgroud)
你可以缓存正则表达式:
Regex not_num_period = new Regex("[^0-9.]")
Run Code Online (Sandbox Code Playgroud)
然后使用:
string result = not_num_period.Replace("joe ($3,004.50)", "");
Run Code Online (Sandbox Code Playgroud)
但是,您应该记住,某些文化在编写货币金额时有不同的惯例,例如:3.004,50.
归档时间: |
|
查看次数: |
75751 次 |
最近记录: |