2

我是使用正则表达式的新手,但仍在尝试弄清楚,所以请原谅下面我的问题中的任何不一致之处。

下面的一切我想在VB.NET中使用正则表达式

使用RegExin VB.NET,我试图从与 CSV 格式文件有相似之处的平面文件中提取分隔数据,但只保留双引号之间的数据,用逗号分隔。

以下是典型线路的示例:

[java] Customer [customerId="1000", customerName="Acme Service, Inc"]
[java] Customer [customerId="2000", customerName="Widget Factory, LLC"]

我正在寻找的输出是:

"1000","Acme Service, Inc"
"2000","Widget Factory, LLC"

编辑

使用这个表达式,"([""'])(?:(?=(\\?))\2.)*?\1"我只能提取,但是在同一行上"1000"获取第一个和任何后续的双引号值时遇到了麻烦。""

此外,这不仅限于 2 个值,还可以是同一行上的一组不确定的双引号值。

任何帮助是极大的赞赏。

4

2 回答 2

2

问题是当你有一个重复的捕获组时,只有最后一个实例被捕获。从正则表达式中获得无限数量的匹配的唯一方法是全局应用正则表达式。在整个文件中执行此操作的最简单方法是使用此小提琴(".*?")中所示的

于 2013-08-09T20:29:29.517 回答
0

您为此使用的代码是什么?我想知道以下表达式是否有效: "(?[""]).*?\k"

于 2013-08-09T20:20:50.437 回答