在我正在开发的应用程序中,有人认为在csv文件的值中包含逗号是明智的。所以我要做的就是选择这些值,然后从这些值中删除逗号。但我建立的正则表达式与任何东西都不匹配。
正则表达式模式为: .*,\"<money>(.+,.+)\",?.*
我想要匹配的值是2700, 2650 and 2600 in "2,700","2,650","2,600"
。
答案 0 :(得分:2)
CSV中允许使用逗号,如果使用文本限定符(通常是双引号“),则不应导致问题。
以下是详细信息:http://en.wikipedia.org/wiki/Comma-separated_values
关于正则表达式:
此代码适用于您的示例数据(但只允许使用一个逗号,基本上只有数千个分隔数字,最高可达999,999):
string ResultString = null;
try {
ResultString = Regex.Replace(myString, "([0-9]{1,3})(?:(,)?([0-9]{3})?)", "$1$3");
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
需要这样:
测试12,205 26,000测试。那种 我想要匹配的价值观 2700,2650和2600 in “2700”, “2650”, “2600”
并产生这个:
测试12205 26000测试。那种 我想要匹配的价值观 2700 2650和2600 in “2700”, “2650”, “2600”
答案 1 :(得分:0)
感谢Ryan的回答。我应该多检查一下我的脾气。尽管如此,CSV中的逗号仍然没有分隔价值?
在办公室询问后,我指向了一个免费的Regex设计器应用程序,我用它来构建我需要的模式。该申请是Rad Software Regular Expression Designer
哦,为了答案的目的,我出来的模式是:
\"(?<money>[0-9,.$]*)\"
编辑:Final Andwer
哇。完全忘记了这个问题。我更多地玩了正则表达式,并推出了一款能够满足我所需要的东西。正则表达式是:
\"([0-9.$]+(,[0-9.]+)+)\"
正则表达式能够匹配我引用的双引号中的任何deciaml字符串。