我想在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
- 1 回答
- 0 关注
- 252 浏览
添加回答
举报
0/150
提交
取消