【发布时间】:2012-05-17 04:57:43
【问题描述】:
我尝试了一个正则表达式来用逗号和空格分割一个字符串。表达式匹配除一种以外的所有情况。我试过的代码是:
List<string> strNewSplit = new List<string>();
Regex csvSplit = new Regex("(?:^|,)(\"(?:[^\"]+|\"\")*\"|[^,]*)", RegexOptions.Compiled);
foreach (Match match in csvSplit.Matches(input))
{
strNewSplit.Add(match.Value.TrimStart(','));
}
return strNewSplit;
案例1:“MYSQL,ORACLE”,“C#,ASP.NET”
预期输出:
“MYSQL,ORACLE”
“C#,ASP.NET”
结果:通过
CASE2:“MYSQL,ORACLE”、“C#,ASP.NET”
预期输出:
“MYSQL,ORACLE”
“C#,ASP.NET”
实际输出:
“MYSQL,ORACLE”
"C#
ASP.NET"
结果:失败。
如果我在两个 DoubleQuotes 之间的逗号后提供一个空格,那么我没有得到适当的输出。我错过了什么吗?请提供更好的解决方案。
【问题讨论】:
-
也许你可以调整这个解决方案stackoverflow.com/questions/9169514/…