拆分字符串除了在其他分隔符中的分隔符

时间:2014-06-11 21:03:37

标签: c# regex

更新的问题:

我之前尝试提出这个问题的尝试很薄弱,根据我已经决定改写的评论。

我正在尝试拆分一个字符串,但在两个场景中忽略了分隔符......到目前为止,我只能实现一个场景。

鉴于这一行:

string line = "id:2,width:0,bounds{x:1,y:1},screens:[{@subclass:hmm,bounds{x:2,y:2},no:yes}],more:less,less:more";

使用这个表达式:

Regex.Split(line, @",(?![^{]*})|(?![^[]*})");

将导致

id:2
width:0
bounds{x:1,y:1}
screens:[{@subclass:hmm
bounds{x:2,y:2},no:yes}]
more:less
less:more

我放置了一个或者操作符,以便我可以抓住该字符[但是边界会转到下一行,但仍然保持不:是的,这是正确的。

我不确定为什么屏幕和界限会因上述表达式而被分割。

1 个答案:

答案 0 :(得分:0)

如果有人需要在具有嵌套字符的拆分表达式中过滤掉多个场景,那么这就是解决方案:

Regex.Split(line, ",(?!([^{]*}|[^[]*]))");