@LebedevStr

Как вернуть второе значение регулярного выражения (C#)?

Здравствуйте. Есть регулярка
var find1 = Regex.Match(s,"<td class=.additional-attribute.>(.*?)<", RegexOptions.Singleline | RegexOptions.IgnoreCase).Groups[1].Value;


Этому выражения соответствует 5 результатов.
Мне нужно вывести первые 2.

Это не помогает :(
var find1 = Regex.Match(s,"<td class=.additional-attribute.>(.*?)<", RegexOptions.Singleline | RegexOptions.IgnoreCase).Groups[2].Value;


(Groups[1] поменял на Groups[2])

Помогите :)
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 1
можно бес цикла: matches[pos].Groups[1].ToString();
Add-Type -IgnoreWarnings -TypeDefinition @'
using System;
using System.Text;
using System.Text.RegularExpressions;
public class Test {
public string findMatches(string text, int pos) {
MatchCollection matches = Regex.Matches(text,@"([a-z]+)", RegexOptions.Singleline | RegexOptions.IgnoreCase);
  Console.Error.WriteLine(matches.Count);
  Console.Error.WriteLine(matches[pos].Groups.Count);

  return matches[pos].Groups[1].ToString();
}
}
'@
$o = new-object -TypeName 'Test'
write-output ('=> "{0}"' -f  $o.findMatches("a b c d", 3))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы