Probador de expresiones regulares

25 octubre 2015: Puede encontrar una nueva versión de esta aplicación integrada en el nuevo marco de herramientasweb Tools online.
  
Patrón a buscar
Puede escribir el patrón sin delimitadores ni modificadores en la vista normal. Puede incluir saltos de línea y tabulaciones para una mejor edición del patrón, pues estos caracteres serán eliminados antes de ejecutar dicho patrón. Al alternar con la vista saltos se actualiza desde uno a otro contenido. En vista saltos, que también es editable, se separan los paréntesis con saltos de línea diferenciando por colores según nivel de profundidad. Las modificaciones en la vista saltos que afecten a la estructura de paréntesis se actualizan alternando entre vista normal y vista saltos.
  
Modificadores
Texto donde se buscará:
Puede editar este texto. Alternando con el botón "Editar" cambia entre modo edición y presentación. En el modo presentación los saltos de línea serán resaltados con el símbolo "" y los espacios con el carácter de punto centrado "·" en color gris. Los caracteres reservados de HTML "<", ">" y "&" son sustituidos por sus escapes "&lt;" y "&gt;" y "&amp;" en el texto presentado para evitar interacciones con HTML. Aunque en la cadena a buscar y en la edición del texto usaremos los originales "<", ">", "&" y el salto "\n" (otros saltos como "\r, \r\n" son convertidos a éste).
En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
no ha mucho tiempo que vivía un hidalgo de los de lanza en   
astillero, adarga antigua, rocín flaco y galgo corredor. Una 
olla de algo más vaca que carnero, salpicón las más noches,  
duelos y quebrantos los sábados, lantejas los viernes, algún 
palomino de añadidura los domingos, consumían las tres partes
de su hacienda. El resto della concluían sayo de velarte,    
calzas de velludo para las fiestas, con sus pantuflos de lo  
mesmo, y los días de entresemana se honraba con su vellorí de
lo más fino.
Más información en los temas de Expresiones regulares en JavaScript

Patrón obtenido de reg.source

Métodos STRING

  • Evaluar: search()

    resultado = texto.search(reg);
    Devuelve un entero con la posición de la primera coincidencia. Las posiciones de los caracteres se cuentan desde cero. Si no se encontró nada devolverá -1. Resultado:
  • Buscar: match()

    resultado = texto.match(reg);
    Devuelve un array. Si no encuentra nada devolverá NULL.
    1. Si el modificador "g" está activado (búsqueda global) el array contiene en sus items todas las coincidencias encontradas.
    2. Si no está activado (búsqueda NO global) el item cero del array contiene la primera coincidencia con el patrón completo y los siguientes items del array contienen las coincidencias con los grupos de captura. Si algún grupo de captura no aplica por estar por ejemplo en una alternativa que no coincide, aparecerá el valor undefined. El array contiene además dos propiedades: index contiene la posición del primer carácter de la coincidencia con el patrón completo; input contiene el texto completo. Este método match() con búsqueda NO global (sin "g") se comporta igual que el método exec() con búsqueda global (con "g").
    Resultado:
     
  • Dividir: split()

    resultado = texto.split(reg[, ]);
    Devuelve un array de cadenas (String) como resultado de dividir el texto separado por el resultado de la expresión regular. Este primer argumento también puede ser un String, aunque aquí funcionará sólo como expresión regular. El segundo argumento es un límite de devoluciones. Si no se pasa se devuelven todos. El patrón es ejecutado siempre con búsqueda global se incluya o no el modificador "g". Resultado:
     
  • Reemplazar: replace()

    resultado = texto.replace(reg, );
    Devuelve un String con el texto reemplazado usando la expresión regular. Este primer argumento también puede ser un String, pero aquí sólo funcionará como expresión regular. El texto no es modificado en la ejecución. El segundo argumento es el String que se usará como reemplazo. Si es vacío, el reemplazo será una cadena vacía "". Este segundo argumento también puede ser una función a modo de callback, aunque aquí sólo funcionará como String. Podemos usar plantillas "$" para el reemplazo. Más abajo en las propiedades del objeto RegExp encontrará más detalles de algunas de las coincidencias que pueden usarse:
    1. $&: Coincidencia con el patrón completo.
    2. $`: String que precede a la coincidencia hasta el inicio del texto.
    3. $': String que sigue a la coincidencia hasta el final del texto.
    4. $n o $nn: Grupos de captura con un dígito desde el 1 al 9 o bien con dos dígitos desde el 01 al 99.
    5. $$: Nos permite escapar el carácter "$" para que no actúe como plantilla. Por ejemplo, si queremos sacar "$1" de forma literal pondríamos "$$1". Si a "$" sigue cualquier carácter que no sea alguno de los posteriores esperados, ese "$" se considera literal.
    Resultado:

Métodos de la EXPRESIÓN REGULAR

  • Evaluar: test()

    resultado = reg.test(texto);
    Devuelve un booleano que indica si existe o no el patrón en el texto. Resultado:
     
  • Buscar: exec()

    reg.lastIndex = ;
    resultado = reg.exec(texto);
    Sea la búsqueda global o no si hay coincidencia devuelve un array, que en su primer item contiene la primera coincidencia con el patrón completo y los siguientes items del array contienen los grupos de captura. Si no hay coincidencia devuelve null. Si algún grupo de captura no aplica por estar por ejemplo en una alternativa que no coincide, aparecerá el valor undefined. El array contiene además dos propiedades: index contiene la posición del primer carácter de la coincidencia con el patrón completo; input contiene el texto completo. Si la búsqueda no es global (sin "g") se ejecutará desde el inicio del texto. Si la búsqueda es global (con "g") se ejecutará desde la posición indicada por la propiedad lastIndex de la expresión regular. Si reg.lastIndex es mayor que el total de caracteres del texto el método devolverá nulo. Aquí controlamos este valor para que sea un número entre cero y el total de caracteres del texto. Este método exec() se comporta igual que el método match() con búsqueda NO global (sin "g"). Resultado:
     

Propiedades de objetos tras una ejecución

Propiedades de la instancia de expresión regular

Propiedades de un objeto equivalente al global RegExp

Los valores String se entrecomillan en rojo y los saltos de línea serán reemplazados con el símbolo "".

IMPORTANTE: Estas propiedades del RegExp son ya declaradas obsoletas (ver Características obsoletas). Aunque aún las soportan los navegadores, es posible que en un futuro no sean soportadas. Actualmente con Chrome 43 y Firefox 38 se soportan, pero IE9 y posteriores sólo actualizan el RegExp una primera vez, mostrando en los siguientes registros los mismos resultados. Las propiedades index y lastIndex sólo se muestran en IE8-11, pero no en otros navegadores. Ver más en el tema que habla sobre la Instanciación de una expresión regular y el objeto RegExp.

Para evitar que en el futuro esta parte no sea soportada y para lograr unificar el comportamiento en todos los navegadores, lo siguiente es una obtención equivalente del objeto RegExp, extrayendo los resultados desde el método replace() que resalta con colores las coincidencias más arriba, usando el array arguments en su función de reemplazo. Ahí y de una forma indirecta podemos obtener los mismos resultados que los del objeto RegExp.

Registro 0 de 0
Patrón:
patron del tema Crear patrones
Líneas de texto a probar
Esta utilidad sirve para validar el contenido de líneas de texto de cualquier clase, aunque su objetivo inicial fue validar direcciones de email. Escribir una dirección email (o texto a validar) por línea. Líneas en blanco y lineas que empiezan con "#" se ignoran. En el resto de las líneas se eliminan espacios antes y después del texto de cada línea.
Líneas de texto correctas:
Líneas de texto incorrectas: