Подтвердить что ты не робот

Как я могу поместить Regex.Matches в массив?

У меня есть несколько регулярных совпадений. Как я могу поместить их в массив и называть их каждый отдельно, например ID[0] ID[1]?

string value = ("{\"ID\":\"([A-Za-z0-9_., ]+)\",");
string ID = Regex.Matches(textt, @value);`
4b9b3361

Ответ 1

Вы можете сделать это уже, поскольку MatchCollection имеет int indexer, который позволяет получить доступ к совпадениям по индексу. Это совершенно верно:

MatchCollection matches = Regex.Matches(textt, @value);
Match firstMatch = matches[0];

Но если вы действительно хотите поместить совпадения в массив, вы можете сделать:

Match[] matches = Regex.Matches(textt, @value)
                       .Cast<Match>()
                       .ToArray();

Ответ 2

Или эта комбинация из последних 2 может быть немного легче взять... MatchCollection может использоваться как массив напрямую - нет необходимости в вторичном массиве:

string value = ("{\"ID\":\"([A-Za-z0-9_., ]+)\",");
MatchCollection matches = Regex.Matches(textt, @value);
for (int i = 0; i < matches.Count; i++)
{
    Response.Write(matches[i].ToString());
}

Ответ 3

другой метод

  string value = ("{\"ID\":\"([A-Za-z0-9_., ]+)\",");
  MatchCollection match = Regex.Matches(textt, @value);

  string[] ID = new string[match.Count];
  for (int i = 0; i < match.Length; i++)
  {
    ID[i] = match[i].Groups[1].Value; // (Index 1 is the first group)
  }