Expresiones regulares

Utilice métodos de la clase String como, por ejemplo, indexOf() , substr() o substring() en lugar de una expresión regular para la extracción y búsqueda básica de cadenas.

Determinadas operaciones que se pueden llevar a cabo utilizando una expresión regular, también se pueden realizar utilizando métodos de la clase String. Por ejemplo, para comprobar si una cadena contiene otra cadena, se puede utilizar el método String.indexOf() o emplear una expresión regular. Sin embargo, cuando un método de la clase String está disponible, se ejecuta más rápido que la expresión regular equivalente y no requiere la creación de otro objeto.

Utilice un grupo sin captura (“ (?:xxxx) ”) en lugar de un grupo (“ (xxxx) ”) en una expresión regular si necesita agrupar elementos, pero no es necesario aislar el contenido del grupo en el resultado.

Con frecuencia, en las expresiones regulares de complejidad moderada, se agrupan partes de la expresión. Por ejemplo, en el siguiente patrón de expresión regular, los paréntesis crean un grupo alrededor del texto “ab.” Por lo tanto, el cuantificador “+” se aplica al grupo en lugar de a un solo carácter:

/(ab)+/

De forma predeterminada, el contenido de cada grupo se “captura”. Es posible obtener el contenido de cada grupo en el patrón como parte del resultado de la ejecución de la expresión regular. La captura de estos resultados de grupo tarda más tiempo y requiere más memoria, ya que los objetos se crean para contener los resultado de grupo. Como alternativa, puede utilizar la sintaxis de grupo sin captura incluyendo un signo de interrogación y dos puntos tras el paréntesis de apertura. Esta sintaxis especifica que los caracteres se comportan como grupo pero que no se capturan para el resultado:

/(?:ab)+/

El uso de la sintaxis de grupo sin captura es más rápido y utiliza menos memoria que la utilización de la sintaxis de grupo estándar.

Considere el uso de un patrón de expresión regular alternativo si una expresión regular funciona de forma inadecuada.

En ocasiones, es posible utilizar varios patrones de expresión regular para probar o identificar el mismo patrón de texto. Por diversos motivos, determinados patrones se ejecutan más rápido que otras alternativas. Si se determina que una expresión regular está causando que el código se ejecute de forma más lenta de lo necesario, considere el uso de patrones de expresión regulares alternativos con los que se obtenga el mismo resultado. Pruebe estos patrones alternativos para determinar cuál es el más rápido.