[英]Regex.Split help in C#
我有这个字符串:
A,B,C[D,E,F[G,H,J[I]],K,L[M,N]
使用Regex.Split(),我需要这样划分结果:
A,B
C[D,E]
F[G,H]
J[I]
K
L[M,N]
我不确定您是否可以仅使用正则表达式执行此操作(如果可能,那么我怀疑所需的正则表达式会非常复杂)。
这是一种替代方法,尽管最好完全跳过regex并手动解析所有内容:
string yourString = "A,B,C[D,E,F[G,H,J[I]],K,L[M,N]";
var parts = Regex.Split(yourString, @",(?=[^,\[]+\[)|\]+,?")
.Where(s => s.Length > 0)
.Select(s => s.Contains("[") ? s + "]" : s);
尝试这个:
Regex re = new Regex(@"((?:\w+)\[(?:(?:\w+\b,?)(?!\[))+)");
var result = re.Split(str.Replace(" ", ""))
.Select(s => s.TrimEnd(',', '[').TrimStart(']', ','))
.Where(s => !string.IsNullOrEmpty(s));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.