正则表达式找到不带引号的逗号?

时间:2010-09-27 00:18:06

标签: .net regex

我想我们可以在左边和逗号右侧查找偶数引号......但我不太清楚如何写它。有人知道吗?

实际上......你只需要检查(左或右)。

我想对此进行拆分,因此必须匹配逗号。

示例:

one, "two, three"

应分为两个字符串:

['one', ' "two, three"']

4 个答案:

答案 0 :(得分:2)

你在解析CSV吗?正则表达式是一个非常糟糕的方式。读取CSV定义(容易googlable)后,您可以编写一个自动机来执行此操作。或者......你可以在网上偷走许多现成解决方案中的一个。

答案 1 :(得分:1)

单独的正则表达式对于确定嵌套条件并不是很好。支撑匹配,报价匹配等,它不是真正的任务。您可以将正则表达式与循环结合使用来解析事物,但另一方面,简单地自行解析它可能更简单。

也许您可以提供一些示例字符串来阐明您需要匹配的内容,以便我可以更好地回答。

*编辑:查看您提出的解决方案是否适用于\\“\}转义的地方,而不是”?

如果你正在处理现实世界的字符串或复杂的转义序列,我怀疑你会发现你的正则表达式存在缺陷。可能这不是常见的情况,但同样重要的是要理解正则表达式可能不是你真正想要做的。正则表达式没有嵌套状态的概念,即使对于简单的引用,转义序列也难以正确处理。

答案 2 :(得分:0)

为什么不使用字符串类的Split方法?

String[] s = someString.Split(",");
// s[0] would contain the portion to the left of the comma
// s[1] would contain the portion to the right of the comma

答案 3 :(得分:0)

没关系......想想我明白了:

Regex("(?<=[^\"]*(?:\"[^\"]*\"[^\"])),");