如何解析每个字符串中具有不同变量的字符串?

How to parse strings with different variables in each string?

我有一个字符串文件,如:

"Row 1: Location=1922&JobType=11&JobName=3719&SkillLevel:isnull=true&JobStatus=0"

"Row 2: OffenderId=1447983&Location=0&OrderBy= "

"Row 3: User=tnu11607&Agency=767&ReportYear=2015&ReportMonth=2"

有多种模式取决于 200 多份报告中的哪一份 运行,但每个报告的参数可能不同。

我想将其解析为:

 ParamLocation  ParamOffender  ParamOrderBy  ParamUser  ...
  1. 1922 --- --- --- ...

  2. --- 1447983 NULL --- ...

  3. --- --- --- tnu11607 ...

(很难让间距充分显示)

等等。

我什至不确定如何开始。任何建议将不胜感激。我会在周末看这个。

尝试深入研究正则表达式,在 SSIS 中,您可以使用脚本任务。借鉴 answers from this SO post,您可以使用类似下面的内容,您可以使用 LINQPad 或 Visual Studio.

查看它的实际效果
string queryString = "Row 1: Location=1922&JobType=11&JobName=3719&SkillLevel:isnull=true&JobStatus=0";
Dictionary<string, string> matches = Regex.Matches(queryString, "@"(\w+:?\w*)(=(\w+))&?"").Cast<Match>().ToDictionary(x => x.Groups[1].Value, x => x.Groups[3].Value);
Console.WriteLine(matches["Location"]);

要在 SSIS 中按行自动执行此操作,只需将 queryString 变量设为行文本即可。