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".