为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C#中的逗号之间排除内部括号字符串而获得子字符串

如何在C#中的逗号之间排除内部括号字符串而获得子字符串

C#
慕桂英4014372 2021-03-29 13:14:20
我想在2个逗号之间找到一个字符串。例如,我想将以下输入字符串拆分为单词/子字符串输入字符串:"(ABC,pqr,xyz(I,j,k),lmn)";预期产量: 1. ABC 2. PQR 3. XYZ(I,j,k) 4. LMN
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

你可以使用RegEx,(?=[^\)]*(?:\(|$))

解释

  • , 匹配字符 ,

  • 积极向前 (?=[^\)]*(?:\(|$))

  • 匹配以下列表中不存在的单个字符 [^\)]*

    • * 量词-在零和无限制的时间之间进行匹配,并尽可能多地匹配,并根据需要返回(贪婪)

    • \))从字面上匹配字符

  • 非捕获组 (?:\(|$)

    • \((从字面上匹配字符

    • $ 在字符串末尾或在字符串末尾的行终止符之前声明位置(如果有)

例子

var input = "(ABC,pqr,xyz(I,j,k),lmn)";


var regex = new Regex(@",(?=[^\)]*(?:\(|$))");


// lets make easier on regex and just trim the outside parenthesis

var values = regex.Split(input.Trim(new[]{'(', ')'}));


foreach (var item in values)

    Console.WriteLine(item);

输出


ABC

pqr

xyz(I,j,k)

lmn


查看完整回答
反对 回复 2021-04-24
  • 1 回答
  • 0 关注
  • 252 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信