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)
然后你可以为$$做同样的事情