我在使用正则表达式方面还是个新手,并且仍在尝试弄清楚它,所以请原谅我下面的问题中的任何不一致之处。
下面的所有内容我都想在 VB.NET 中使用正则表达式来完成。
在 VB.NET
中使用 RegEx
,我尝试从与 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 个值,还可以是同一行上一组不确定的双引号值。
非常感谢任何帮助。
最佳答案
问题是,当您有重复捕获组时,只会捕获最后一个实例。从正则表达式中获取无限数量的匹配的唯一方法是全局应用正则表达式。在整个文件中执行此操作的最简单方法是使用 (".*?")
,如 fiddle 所示。
关于正则表达式 - 返回引号之间的所有字符,每行多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18154881/