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

时间:2015-03-20 18:05:04

标签: string parsing variables text ssis

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

"第1行:位置= 1922& JobType = 11& JobName = 3719& SkillLevel:isnull = true& JobStatus = 0"

"第2行:OffenderId = 1447983& Location = 0& OrderBy ="

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

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

我想将其分解为:

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

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

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

  4. (很难让间距充分显示)

    等等。

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

1 个答案:

答案 0 :(得分:0)

尝试深入了解正则表达式,在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变量设为行文本即可。