2010-10-03 2 views
0

Я написал регулярное выражение ...C# Regex: Получить все совпадения с именем?

internal static readonly Regex _parseSelector = new Regex(@" 
     (?<tag>"[email protected]")? 
     (?:\.(?<class>"+_validName+ @"))* 
     (?:\#(?<id>"+_validName+ @"))* 
     (?<attr>\[ 
     \])* 
     (?:\:(?<pseudo>.+?))* 
    ", RegexOptions.IgnorePatternWhitespace); 

Теперь я хочу, чтобы получить все биты «класс» ...

var m = _parseSelector.Match("tag.class1.class2#id[]:pseudo"); 

Как сделать, чтобы получить список class1, class2 от объекта матча ?

+0

@Oded: Нет ... это похоже на HTML? Вы немного прыгаете с пистолета;) – mpen

+0

достаточно справедливо ... комментарий отменен. – Oded

ответ

2
foreach (var c in m.Groups["class"].Captures) 
{ 
    Console.WriteLine(c); 
} 

Ура гадать.

+3

@Callum: Hahaha ... Мне нравится ваш комментарий к редакции: D – mpen

1
m.Groups["class"] 
+0

Да, посмотри, эту часть я знал, но '.Value' возвращает только последний матч. Это '.Captures', что я искал. – mpen

Смежные вопросы