我非常喜欢使用正则表达式并且仍然想弄明白,所以请原谅我在下面的问题中的任何不一致。
我想在 VB.NET 中使用正则表达式做以下所有事情。
在RegEx
中使用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个值,而且可能是同一行上不确定的双引号值。
非常感谢任何帮助。
答案 0 :(得分:2)
问题是当你有一个重复的捕获组时,只捕获最后一个实例。从正则表达式中获取无限数量匹配的唯一方法是全局应用正则表达式。在整个文件中执行此操作的最简单方法是使用(".*?")
,fiddle
答案 1 :(得分:0)
您正在使用的代码是什么?我想知道以下表达式是否有效:“(?[”“])。*?\ k”