-3

配列を含む文字列があります

string str = "array[0]=[1,a,3,4,asdf54,6];array[1]=[1aaa,2,4,k=6,2,8];array[2]=[...]";

次のような配列を取得するために分割したいと思います。

str[0] = "[1,a,3,4,asdf54,6]";
str[1] = "[1aaa,2,4,k=6,2,8]";
str[2] = ....

使ってみたRegex.Split(str, @"\[\D+\]")けどダメでした..

助言がありますか?

ありがとう

解決:

あなたの答えを見た後、私は使用しました

var arr = Regex.Split(str, @"\];array\[[\d, -]+\]=\[");

これはうまくいきます、ありがとう!

4

6 に答える 6

2

正規表現では、\d任意の数字に一致します\D、数字以外のすべてに一致します。後者の使用は間違っていると思います。さらに、文字クラスを使用して、正規表現が否定記号、コンマ、スペースにも一致するようにする必要があります。、、、 ... _ _ _ _ _ _[\d\-, ]=(?<=\=)[0][1][2]

string str = "array[0]=[1,2,3,4,5,6];array[1]=[1,2,4,6,2,8];array[2]=[...]";
string[] results = Regex.Matches(str, @"(?<=\=)\[[\d\-, ]+\]")
                        .Cast<Match>()
                        .Select(m => m.Value)
                        .ToArray();
于 2013-10-01T09:30:54.363 に答える
0
string str = "array[0]=[1,a,3,4,asdf54,6];array[1]=[1aaa,2,4,k=6,2,8];array[2]=[2,3,2,3,2,3=3k3k]";
string[] m1 = str.Split(';');
List<string> m3 = new List<string>();
foreach (string ms in m1)
{
    string[] m2 = ms.Split('=');
    m3.Add(m2[1]);
}
于 2013-10-01T19:19:01.720 に答える