Expresión regular -Prioridad de operadores

Las expresiones regulares se evalúan de izquierda a derecha y siguen un orden de prioridad, muy similar a las expresiones aritméticas.

Los operadores con la misma prioridad se evalúan de izquierda a derecha, y los de distinta prioridad se evalúan de mayor a menor. La siguiente tabla muestra el orden de prioridad de los operadores de expresiones regulares, de mayor a menor:

Operador Descripción
\ Carácter de escape
(), (?:), (?=), [] Paréntesis y corchetes
*, +, ?, {n}, {n,}, {n,m} Cuantificadores
^, $, \ cualquier metacarácter, cualquier carácter Anclas y secuencias (es decir, posición y orden)
| Alternancia, operación "o"
Los caracteres tienen mayor prioridad que el operador de alternancia, por lo que "m|food" coincide con "m" o "food". Para coincidir con "mood" o "food", use paréntesis para crear una subexpresión, dando como resultado "(m|f)ood".

A continuación se muestran algunos operadores comunes de expresiones regulares en orden de prioridad de mayor a menor:

  • Símbolo de escape: \Es el símbolo de escape utilizado para escapar otros caracteres especiales. Tiene la prioridad más alta.

    Ejemplo:\d、\.etc., donde\dcoincide con un dígito,\.coincide con un punto.

  • Paréntesis:Los paréntesis()se utilizan para crear subexpresiones y tienen mayor prioridad que otros operadores.

    Ejemplo:(abc)+coincide con "abc" una o más veces.

  • Cuantificadores:Los cuantificadores especifican cuántas veces se puede repetir el elemento anterior.

    Ejemplo:a*coincide con cero o más "a".

  • Clases de caracteres:Las clases de caracteres utilizan corchetes[]para indicar que se puede coincidir con cualquier carácter dentro de los corchetes.

    Ejemplo:[aeiou]coincide con cualquier letra vocal.

  • Aserciones:Las aserciones son elementos que se utilizan para comprobar condiciones en posiciones específicas de la cadena.

    Ejemplo:^indica el inicio de la línea,$indica el final de la línea.

  • Concatenación:La concatenación representa la unión simple entre caracteres cuando no hay otros operadores.

    Ejemplo:abccoincide con "abc".

  • Tubería (pipe):El símbolo de tubería (pipe)|representa la relación "o" y se utiliza para elegir entre varios patrones.

    Ejemplo:cat|dogcoincide con "cat" o "dog".

A continuación, veamos la explicación de prioridad de las siguientes expresiones regulares:

\d{2,3}|[a-z]+(abc)*
  • \d{2,3}coincide con dos o tres dígitos.
  • |representa "o".
  • [a-z]+coincide con una o más letras minúsculas.
  • (abc)*coincide con cero o más "abc".
Otras extensiones