RegEx:按分隔符拆分字符串,然后按另一个拆分

需要的行为存在问题。

假设有一个

sourceString = @"name1$$value1^name2$$value2^name3$$value3"; 

也许更长串…

我想首先用^分隔符然后用另一个$$分割,以根据这个名称 – 值对创建字典。

此字符串存储在文件中,因此可能太长,任何拆分操作可能会花费太多时间。 我希望有一个正则表达式匹配^和内部groupmatch by $$

这个正则表达式(.*?)\$\$(.*?)(?:\^|$)将匹配名称值对,这里是一个Rubular来certificate它 。 要使用它,您可以使用以下代码:

 var input = "name1$$value1^name2$$value2^name3$$value3"; var pattern = @"(.*?)\$\$(.*?)(?:\^|$)"; var hash = new Dictionary(); var match = Regex.Match(input, pattern); while (match.Success) { hash.Add(match.Groups[1].Value, match.Groups[2].Value); match = match.NextMatch(); } 

为什么不使用:

 sourceString.Split(new char[] {'^'}, StringSplitOptions.RemoveEmptyEntries) 

然后你可以为$$做同样的事情