2008-12-10 62 views
1

在我正在开发的应用程序中,有人认为将逗号包含在csv文件的值中会是个好主意。所以我试图做的选择这些值,然后从这些值中删除逗号。但是我构建的正则表达式与任何东西都不匹配。使用正则表达式来查找特定格式的字段

正则表达式模式是:.*,\"<money>(.+,.+)\",?.*

以及排序值我想匹配将是2700, 2650 and 2600 in "2,700","2,650","2,600"的。 。

回答

0

感谢您的回答瑞安。我应该保持一点点脾气。尽管如此,CSV中的逗号并不能区分价值?

在询问了办公室后,我找到了一个免费的Regex设计器应用程序,用于构建我需要的模式。该应用程序是Rad Software Regular Expression Designer

哦,对了答案目的,我跟出来的模式是: \"(?<money>[0-9,.$]*)\"

编辑:最后Andwer

哇。完全忘记了这个问题。我更多地运用了正则表达式,并提出了一个能够匹配我需要的所有东西。正则表达式是:

\"([0-9.$]+(,[0-9.]+)+)\"

该正则表达式已经能够匹配,我已经在它抛出一个双引号内的任何deciaml字符串。

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在 的 “2700”, “2650” 那种 , “2600”

,并产生这样的:

测试12205 26000测试。和价值观的排序 我想匹配的将是 2700 2650 2600在 “2700”,“2650”,“2600”