我们软件的用户需要将现有数据导入我们的数据库。因为它们都有不同的文本文件结构,所以我使用正则表达式(.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”。
如何通过简单地在上面的导入例程中调整正则表达式来实现这个目的?
如果不可能,任何建议的解决方案都避免为每个客户硬编码单独的构建?