2008-08-26 3 views

Respuesta

6

A Match es un objeto que indica una expresión regular particular emparejada (una parte de) el texto de destino. Un Group indica una parte de una coincidencia, si la expresión regular original contenía marcadores de grupo (básicamente un patrón entre paréntesis). Por ejemplo, con el siguiente código:

string text = "One car red car blue car"; 
string pat = @"(\w+)\s+(car)"; 
Match m = r.Match(text); 

m sería objeto partido que contiene dos grupos - grupo 1, a partir de (\w+), y que capturado "One", y el grupo 2 (de (car)) que corresponde, así, "coche".

2

Una coincidencia es una parte de una cadena que coincide con la expresión regular, y por lo tanto, podría haber varias coincidencias dentro de una cadena.

Dentro de una coincidencia puede definir grupos, anónimos o con nombre, para que sea más fácil dividir una coincidencia. Un ejemplo simple es crear una expresión regular para buscar URL y luego usar grupos dentro para encontrar el protocolo (http), el dominio (www.web.com), la ruta (/lol/cats.html) y los argumentos, y lo que no.

// Example I made up on the spot, probably doesn't work very well 
"(?<protocol>\w+)://(?<domain>[^/]+)(?<path>/[^?])" 

un único patrón se puede encontrar varias veces dentro de una cadena, como ya he dicho, por lo que si se utiliza Regex.Matches (texto cadena) que se pondrá en varias coincidencias, cada uno consistente en cero, uno o más grupos .

Los grupos nombrados se pueden encontrar indexando por número o con una cadena. El ejemplo anterior se puede utilizar como esto:

Match match = pattern.Match(urls); 
if (!match.Success) 
    continue; 
string protocol = match.Groups["protocol"].Value; 
string domain = match.Groups[1].Value; 

Para hacer las cosas aún más interesante, un grupo podría ser igualada varias veces, pero luego lo recomiendo empezar a leer la documentation.

También puede usar grupos para generar referencias, y para hacer una búsqueda parcial y reemplazar, pero lea más de eso en MSDN.

Cuestiones relacionadas