拆分字符串,除非分隔符在其他分隔符中
本文关键字:分隔符 其他 字符串 拆分 | 更新日期: 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, ",(?!([^{]*}|[^[]*]))");