拆分字符串,除非分隔符在其他分隔符中

本文关键字:分隔符 其他 字符串 拆分 | 更新日期: 2023-09-27 18:08:08

更新问题:

我之前问这个问题的尝试很弱,基于这些评论,我决定重写它

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

给定这条线:

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

我放置了一个或运算符,这样我就可以抓取字符[但边界转到下一行,但仍然保持否:是,哪一行是正确的。

鉴于上面的表达式,我不确定为什么屏幕和边界是分开的。

拆分字符串,除非分隔符在其他分隔符中

如果有人需要在一个包含嵌套字符的拆分表达式中筛选出多个场景,这就是解决方案:

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