RegEx Match varias veces en cadena

Estoy tratando de extraer valores de una cadena que están entre <>. Pero podrían suceder muchas veces.

¿Alguien puede ayudar con la expresión regular para que coincida con estos;

this is a test for <> who like <> test 2 <> likes nothing test 3 <> <> <> <> <> <> <>. 

Luego quiero enfocar el GroupCollection para obtener todos los valores.

Cualquier ayuda recibida en gran medida. Gracias.

Use una mirada positiva hacia adelante y busque detrás de la aserción para que coincida con los corchetes angulares, use .*? para que coincida con la secuencia de caracteres más corta posible entre esos corchetes. Encuentre todos los valores iterando el MatchCollection devuelto por el método Matches() .

 Regex regex = new Regex("(?<=<<).*?(?=>>)"); foreach (Match match in regex.Matches( "this is a test for <> who like <>")) { Console.WriteLine(match.Value); } 

Puedes probar uno de estos:

 (?<=<<)[^>]+(?=>>) (?<=<<)\w+(?=>>) 

Sin embargo, tendrá que repetir el MatchCollection devuelto.

Algo como esto:

 (<<(?[^>]*)>>)* 

Este progtwig puede ser útil:

http://sourceforge.net/projects/regulator/