正規表現を使用してこの文字列を分割するにはどうすればよいですか
String s = "[TEST name1=\"smith ben\" name2=\"Test\" abcd=\"Test=\" mmmm=\"Test=\"]";
以下のようなリストに:
name1 smith ben
name2 Test
abcd Test=
mmmm Test=`
要素から属性を取得するのと似ていますが、完全ではありません。
最初に行うことは、文字列から角かっこと「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);
}