El trabajo exitoso con expresiones regulares requiere que sepas lo que hace cada carácter, bandera y método especial. Esta es una hoja de trucos de expresiones regulares a la que puede referirse cuando intenta recordar cómo funciona un método, un carácter especial o una bandera..
Hay dos formas de definir una expresión regular en JavaScript.
var rgx = / ^ (\ d +) /
- Puede utilizar un literal de expresión regular y encerrar el patrón entre barras. Esto se evalúa en tiempo de compilación y proporciona un mejor rendimiento si la expresión regular se mantiene constante.var rgx = nuevo RegExp ('^ (\ d +)')
- La función constructora es útil cuando la expresión regular puede cambiar mediante programación. Estos son compilados durante el tiempo de ejecución.Las siguientes secuencias se pueden usar para unir un conjunto específico de caracteres.
\ w
- Coincide con todos los caracteres de las palabras. Los caracteres de las palabras son alfanuméricos (a-z, caracteres A-Z y subrayado).\ W
- Coincide con caracteres que no son palabras. Todo excepto caracteres alfanuméricos y guiones bajos..\re
- Coincide con los dígitos dígitos. Cualquier dígito del 0 al 9.\RE
- Coincide con caracteres que no son dígitos. Todo excepto 0 a 9..\ s
- Coincide con los espacios en blanco. Esto incluye espacios, pestañas y saltos de línea.\ S
- Coincide con todos los demás caracteres excepto espacios en blanco..
- Coincide con cualquier carácter excepto saltos de línea.[ARIZONA]
- Coincide con los personajes en un rango. Por ejemplo, [A-E]
coincidirá con A, B, C, D y E.[A B C]
- Coincide con un personaje en el conjunto dado. Por ejemplo, [AMT]
sólo coincidirá con A, M y T.[^ ABC]
- Coincide con todos los personajes no Presente en el conjunto dado. Por ejemplo, [^ A-E]
coincidirá con todos los demás caracteres excepto A, B, C, D y E.Todas las expresiones anteriores coincidirán con un solo carácter a la vez. Puede agregar cuantificadores para especificar cuántos caracteres deben incluirse en la coincidencia a la vez.
+
- Coincide con una o más apariciones del token anterior. Por ejemplo, \ w+
volverá ABD12D como un solo partido en lugar de seis partidos diferentes.*
- Coincide con cero o más apariciones del token anterior. Por ejemplo, b \ w *
coincide con las partes en negrita en segundo, murciélago, bajhdsfbfjhbe. Básicamente, coincide con cero o más caracteres de palabra después de 'b'.m, n
- Coincide con al menos my apariciones n del token anterior. metro,
coincidirá con al menos m ocurrencias, y no hay límite superior para la coincidencia. k
coincidirá exactamente con k apariciones del token anterior.?
- Coincide con cero o una aparición del carácter anterior. Por ejemplo, esto puede ser útil cuando se combinan dos variaciones de ortografía para el mismo trabajo. Por ejemplo, /comportamiento/
coincidirá con ambos comportamiento y comportamiento.|
- Coincide con la expresión antes o después del carácter de canalización. Por ejemplo, / se (a | e) /
coincide con ver y mar.(A B C)
- Esto agrupará varias fichas y recordará la subcadena que coinciden para su uso posterior. Esto se llama un grupo de captura.(?:A B C)
- Esto también agrupará varias fichas pero no recordará la coincidencia. Es un grupo que no captura..\ d + (? = ABC)
- Esto coincidirá con el token (s) que precede a la (? = ABC)
parte solo si es seguido por A B C
. La parte A B C
No se incluirá en el partido. los \re
La parte es solo un ejemplo. Podría ser cualquier otra cadena de expresión regular.\ d + (?! ABC)
- Esto coincidirá con el token (s) que precede a la (?!A B C)
parte solo si es no seguido por A B C
. La parte A B C
No se incluirá en el partido. los \re
La parte es solo un ejemplo. Podría ser cualquier otra cadena de expresión regular.También hay algunos otros caracteres de expresiones regulares que no se han cubierto en las secciones anteriores:
^
- Busque la expresión regular al principio de la cadena o al principio de una línea si el indicador de multilínea está habilitado.PS
- Busque la expresión regular al final de la cadena o al final de una línea si el indicador de multilínea está habilitado.\segundo
- Coincidir con el token anterior solo si hay un límite de palabra.\SEGUNDO
- Coincidir con el token anterior solo si no hay un límite de palabra.Las banderas se pueden usar para controlar cómo se debe interpretar una expresión regular. Puede usar banderas solo o en conjunto en el orden que desee. Estas son las cinco banderas que están disponibles en JavaScript..
sol
- Busque en la cadena todas las coincidencias de una expresión dada en lugar de devolver solo la primera.yo
- Haga que la búsqueda no distinga entre mayúsculas y minúsculas para que coincidan palabras como Apple, aPPLe y apple a la vez.metro
- Esta bandera asegurará que la ^
y PS
los tokens buscan una coincidencia al principio o al final de cada línea en lugar de toda la cadena.tu
- Este indicador le permitirá utilizar escapes de puntos de código Unicode en su expresión regular.y
- Esto le dirá a JavaScript que solo busque una coincidencia en la posición actual en la cadena objetivo.Puede especificar marcas para una expresión regular en JavaScript agregándolas al final de un literal de expresión regular o pasándolas a RegExp
constructor. Por ejemplo, / cat / i
coincide con todas las apariciones de gato independientemente del caso, y RegExp ("gato", 'i')
hace lo mismo.
Las expresiones regulares que creas usando las banderas y las secuencias de caracteres que hemos analizado hasta ahora están destinadas a ser utilizadas con diferentes métodos para buscar, reemplazar o dividir una cadena. Aquí hay algunos métodos relacionados con expresiones regulares..
prueba()
- Compruebe si la cadena principal contiene una subcadena que coincide con el patrón especificado por la expresión regular dada. Vuelve cierto
en el partido exitoso y falso
de otra manera.var textA = 'Me gustan mucho las aplicaciones'; var textB = 'Me gustan las aplicaciones'; var regexOne = / apples $ / i // Salida: false console.log (regexOne.test (textA)); // Salida: true console.log (regexOne.test (textB));
En el ejemplo anterior, la expresión regular debe buscar la palabra manzanas Sólo al final de la cadena. Es por eso que tenemos falso
en el primer caso.
buscar()
- Compruebe si la cadena principal contiene una subcadena que coincide con el patrón especificado por la expresión regular dada. Devuelve el índice del partido en caso de éxito y -1 de otra manera.var textA = 'Me gustan mucho las aplicaciones'; var regexOne = / apples /; var regexTwo = / apples / i; // Salida: -1 console.log (textA.search (regexOne)); // Salida: 7 console.log (textA.search (regexTwo));
En este caso, la primera expresión regular devuelta. -1 porque no hubo coincidencia exacta entre mayúsculas y minúsculas.
partido()
- Busque si la cadena principal contiene una subcadena que coincide con el patrón especificado por la expresión regular dada. Si el sol
la bandera está habilitada, varias coincidencias se devolverán como una matriz.var textA = 'Todo lo que veo aquí son manzanas, APLICACIONES y APLICACIONES'; var regexOne = / apples / gi; // Salida: ["apples", "APPles", "apPleS"] console.log (textA.match (regexOne));
exec ()
- Busque si la cadena principal contiene una subcadena que coincide con el patrón especificado por la expresión regular dada. La matriz devuelta contendrá información sobre los grupos de coincidencia y captura..var textA = '¿Te gustan las manzanas?'; var regexOne = / apples /; // Salida: apples console.log (regexOne.exec (textA) [0]); // Salida: ¿Te gustan las manzanas? console.log (regexOne.exec (textA) .input);
reemplazar()
- Busque una subcadena que coincida con el patrón dado y reemplácela con la cadena de reemplazo provista.var textA = '¿Te gustan los aPPles?'; var regexOne = / apples / i // Salida: ¿Te gustan los mangos? console.log (textA.replace (regexOne, 'mangos'));
división()
- Este método le permitirá dividir la cadena principal en subcadenas en función del separador especificado como una expresión regular.var textA = 'Esta cadena 593 será brok294en en lugares donde están d1gits.'; var regexOne = / \ d + / g // Salida: ["This", "la cadena se romperá", "en los lugares donde d", "gits are." ] console.log (textA.split (regexOne))
En tutoriales anteriores, he cubierto los conceptos básicos de las expresiones regulares, así como algunas expresiones más complicadas que pueden resultar útiles de vez en cuando. Estos dos tutoriales explican cómo funcionan los diferentes caracteres o secuencias de caracteres en expresiones regulares.
Si las expresiones regulares todavía te confunden, mi consejo sería seguir practicando y ver cómo otras personas crean expresiones regulares para hacer un patrón particular..