Найти каждое соответствие RegEx в строке

id нравится делать что-то вроде

foreach (Match match in regex)
    {
    MessageBox.Show(match.ToString());
    }

Спасибо за любую помощь...!

Ответы

Ответ 1

Существует метод RegEx.Matches:

foreach (Match match in regex.Matches(myStringToMatch))
{
  MessageBox.Show(match.Value);
}

Чтобы получить согласованную подстроку, используйте свойство Match.Value, как показано выше.

Ответ 2

из MSDN

  string pattern = @"\b\w+es\b";    
  Regex rgx = new Regex(pattern);    
  string sentence = "Who writes these notes?";

  foreach (Match match in rgx.Matches(sentence))
  {

     Console.WriteLine("Found '{0}' at position {1}", 
                       match.Value, match.Index);
  }

Ответ 3

Сначала вам нужно объявить строку, подлежащую анализу, а затем шаблон регулярного выражения. Наконец, в цикле вы должны указать regex.Matches(stringvar)

string stringvar = "dgdfgdfgdf7hfdhfgh9fghf";
Regex regex = new Regex(@"\d+");

foreach (Match match in regex.Matches(stringvar))
{
    MessageBox.Show(match.Value.ToString());
}