如何解析每个字符串中具有不同变量的字符串?
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 ...
1922 --- --- --- ...
--- 1447983 NULL --- ...
--- --- --- 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
变量设为行文本即可。
我有一个字符串文件,如:
"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 ...
1922 --- --- --- ...
--- 1447983 NULL --- ...
--- --- --- 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
变量设为行文本即可。