如何在单个捕获的组中组合多个字符串

时间:2016-12-08 16:20:25

标签: .net regex

我们软件的用户需要将现有数据导入我们的数据库。因为它们都有不同的文本文件结构,所以我使用正则表达式(.NET)作为通用导入例程的一部分,从文本文件中提取数据字段并将它们导入数据库中的正确字段。

只需通过配置设置调整正则表达式“模式”,我就能够适应客户提出的任何importfile格式。

例如:导入“Id”和“Name”。

Text file:
==========
Id      Name            Code
0001    Tractor         TRA
0020    Truck           TRU
0021    Bulldozer       BDZ
0022    PickupTruck     PKT


Import routine
==============
pattern = "^(?<Id>\d{4})[ ]*(?<Naam>.{16}).*[\r\n]*$"
For Each oMatch As Match In Regex.Matches(FileContent, pattern, RegexOptions.Multiline)
    dataTableMachines.AddMachineRow(New Guid(oMatch.Groups("Id").Value.Trim.PadLeft(32, "0"c)),
                                    oMatch.Groups("MachineName").Value.Trim)
Next

但是我现在遇到的客户希望“导入的MachineName”是“Code”+“”+“Name”的组合。 因此,对于第一行,捕获的组“MachineName”应包含“TRA Tractor”。

如何通过简单地在上面的导入例程中调整正则表达式来实现这个目的?

如果不可能,任何建议的解决方案都避免为每个客户硬编码单独的构建?

0 个答案:

没有答案