2013-10-29 48 views
0

如何使用正則表達式RegularExpressions用C#

String s = "[TEST name1=\"smith ben\" name2=\"Test\" abcd=\"Test=\" mmmm=\"Test=\"]";

拆分此字符串到一個列表如下圖所示:

name1 smith ben 
name2 Test 
abcd Test= 
mmmm Test=` 

它是從一個元素,但不神似越來越屬性。

+0

「問題是我們不能使用simple = \來分割這個字符串。」 - 爲什麼不 ? – alfasin

+0

可以查看以下URL http://www.dotnetperls.com/regex-split –

+0

因爲我想將分割字符串添加到sortedList中,例如list.Add(「name1」,「smith ben」); list.Add(「name2」,「Test」); (「abcd」,「Test =」); list.Add(「mmmm」,「Test =」); –

回答

2

要做的第一件事是從字符串中刪除括號和'TEST'部分,以便您只剩下鍵和值。然後你可以把它分成一個數組,其中奇數條目是鍵值,偶數條目是數值。然後,你可以很容易地填充你的列表:

String s = "[TEST name1=\"smith ben\" name2=\"Test\" abcd=\"Test=\" mmmm=\"Test=\"]"; 

SortedList<string, string> list = new SortedList<string, string>(); 

//Remove the start and end tags 
s = s.Remove(0, s.IndexOf(' ')); 
s = s.Remove(s.LastIndexOf('\"') + 1); 

//Split the string 
string[] pairs = s.Split(new char[] { '\"' }, StringSplitOptions.None); 

//Add each pair to the list 
for (int i = 0; i+1 < pairs.Length; i += 2) 
{ 
    string left = pairs[i].TrimEnd('=', ' '); 
    string right = pairs[i+1].Trim('\"'); 
    list.Add(left, right); 
}