猿问

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

我想在2个逗号之间找到一个字符串。


例如,我想将以下输入字符串拆分为单词/子字符串


输入字符串:


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

预期产量:


 1. ABC

 2. PQR

 3. XYZ(I,j,k)

 4. LMN


慕桂英4014372
浏览 253回答 1
1回答

动漫人物

你可以使用RegEx与,(?=[^\)]*(?:\(|$))解释, 匹配字符 ,积极向前 (?=[^\)]*(?:\(|$))匹配以下列表中不存在的单个字符 [^\)]** 量词-在零和无限制的时间之间进行匹配,并尽可能多地匹配,并根据需要返回(贪婪)\))从字面上匹配字符非捕获组 (?:\(|$)\((从字面上匹配字符$ 在字符串末尾或在字符串末尾的行终止符之前声明位置(如果有)例子var input = "(ABC,pqr,xyz(I,j,k),lmn)";var regex = new Regex(@",(?=[^\)]*(?:\(|$))");// lets make easier on regex and just trim the outside parenthesisvar values = regex.Split(input.Trim(new[]{'(', ')'}));foreach (var item in values)    Console.WriteLine(item);输出ABCpqrxyz(I,j,k)lmn
随时随地看视频慕课网APP
我要回答