¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo

Regex (Clase)

Representa una expresión regular inmutable.

Espacio de nombres: System.Text.RegularExpressions
Ensamblado: System (en system.dll)

[SerializableAttribute] 
public class Regex : ISerializable
/** @attribute SerializableAttribute() */ 
public class Regex implements ISerializable
SerializableAttribute 
public class Regex implements ISerializable
No aplicable.

La clase Regex contiene varios métodos estáticos que permiten utilizar una expresión regular sin crear un objeto explícitamente un objeto Regex. Utilizar un método estático equivale a construir un objeto Regex, se utiliza una vez y luego se destruye.

La clase Regex es inmutable (de sólo lectura) y es inherentemente segura para la ejecución de subprocesos. Los objetos Regex pueden crearse en cualquier subproceso y los subprocesos pueden compartir dichos objetos. Para obtener más información, vea Seguridad para subprocesos.

En el ejemplo de código siguiente se ilustra el uso de una expresión regular para comprobar si una cadena tiene el formato correcto para representar un valor monetario. Observe el uso de los símbolos ^ y $ que encierran la expresión para indicar que toda la cadena, no sólo una subcadena, debe cumplir la expresión regular.

using System;
using System.Text.RegularExpressions;

public class Test
{

    public static void Main ()
    {

    	  // Define a regular expression for currency values.
  	    Regex rx = new Regex(@"^-?\d+(\.\d{2})?$");
  	    
  	    // Define some test strings.
  	    string[] tests = {"-42", "19.99", "0.001", "100 USD"};
  	    
  	    // Check each test string against the regular expression.
  	    foreach (string test in tests)
  	    {
  	        if (rx.IsMatch(test))
  	        {
  	            Console.WriteLine("{0} is a currency value.", test);
  	        }
  	        else
  	        {
  	            Console.WriteLine("{0} is not a currency value.", test);
  	        }
  	    }
  	   
    }	
	
}

import System.*;
import System.Text.RegularExpressions.*;

public class Test
{
    public static void main(String[] args)
    {
        // Define a regular expression for currency values.
        Regex rx = new Regex("^-?\\d+(\\.\\d{2})?$");

        // Define some test strings.
        String tests[] =  { "-42", "19.99", "0.001", "100 USD" };

        // Check each test string against the regular expression.
        for (int iCtr = 0; iCtr < tests.get_Length(); iCtr++) {
            String test = (String)tests.get_Item(iCtr);
            if (rx.IsMatch(test)) {
                Console.WriteLine("{0} is a currency value.", test);
            }
            else {
                Console.WriteLine("{0} is not a currency value.", test);
            }
        }
    } //main 
} //Test

En el ejemplo de código siguiente se ilustra el uso de una expresión regular para comprobar si aparecen palabras repetidas dentro de una cadena. Observe el uso de la construcción (?<word>) para nombrar un grupo y el uso de la construcción (\k<word>) para hacer referencia a ese grupo más adelante en la expresión.

using System;
using System.Text.RegularExpressions;

public class Test
{

    public static void Main ()
    {

        // Define a regular expression for repeated words.
        Regex rx = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
          RegexOptions.Compiled | RegexOptions.IgnoreCase);

        // Define a test string.        
        string text = "The the quick brown fox  fox jumped over the lazy dog dog.";
        
        // Find matches.
        MatchCollection matches = rx.Matches(text);

        // Report the number of matches found.
        Console.WriteLine("{0} matches found.", matches.Count);

        // Report on each match.
        foreach (Match match in matches)
        {
            string word = match.Groups["word"].Value;
            int index = match.Index;
            Console.WriteLine("{0} repeated at position {1}", word, index);   
        }
        
    }
	
}

import System.*;
import System.Text.RegularExpressions.*;

public class Test
{
    public static void main(String[] args)
    {
        // Define a regular expression for repeated words.
        Regex rx = new Regex("\\b(?<word>\\w+)\\s+(\\k<word>)\\b", 
            RegexOptions.Compiled | RegexOptions.IgnoreCase);

        // Define a test string.        
        String text = "The the quick brown fox  fox jumped over the "
            + "lazy dog dog.";

        // Find matches.
        MatchCollection matches = rx.Matches(text);

        // Report the number of matches found.
        Console.WriteLine("{0} matches found.", (Int32)matches.get_Count());

        // Report on each match.
        for (int iCtr = 0; iCtr < matches.get_Count(); iCtr++) {
            Match match = matches.get_Item(iCtr);
            String word = match.get_Groups().get_Item("word").get_Value();
            int index = match.get_Index();
            Console.WriteLine("{0} repeated at position {1}", word, 
                (Int32)index);
        }
    } //main       
} //Test

System.Object
  System.Text.RegularExpressions.Regex
     Clases derivadas

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

XNA Framework

Compatible con: 1.0
Mostrar:
© 2015 Microsoft