簡體   English   中英

C#中的Regex.Split幫助

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM