我想在两个逗号之间找到一个字符串。
例如,我想将输入字符串拆分为words / substring
输入字符串:
"(ABC,pqr,xyz(I,j,k),lmn)";
预期产出:
1. ABC
2. PQR
3. XYZ(I,j,k)
4. LMN
答案 0 :(得分:0)
您可以将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