Parle soporta la correspondencia de patrón con expresiones regulares similares a flex.
Los siguientes conjuntos de caracteres POSIX también son soportados:
[:alnum:]
, [:alpha:]
, [:blank:]
, [:cntrl:]
, [:digit:]
, [:graph:]
, [:lower:]
, [:print:]
, [:punct:]
, [:space:]
, [:upper:]
, [:xdigit:]
.
Las clases de caracteres Unicode no están actualmente activadas por omisión, pase --enable-parle-utf32 para hacerlas disponibles.
Una codificación particular puede ser mapeada con una regex correctamente construida.
Por ejemplo, para corresponder al símbolo EURO codificado en UTF-8, la expresión regular [\xe2][\x82][\xac]
puede ser utilizada.
El patrón para una cadena codificada en UTF-8 podría ser [ -\x7f]{+}[\x80-\xbf]{+}[\xc2-\xdf]{+}[\xe0-\xef]{+}[\xf0-\xff]+
.
Secuencia | Descripción |
---|---|
\a | Alerta (campana). |
\b | Retroceso (Backspace). |
\e | Carácter ESC, \x1b. |
\n | Nueva línea. |
\r | Retorno de carro. |
\f | Salto de página, \x0c. |
\t | Tabulación horizontal, \x09. |
\v | Tabulación vertical, \x0b. |
\oct | Carácter especificado por un código octal de tres dígitos. |
\xhex | Carácter especificado por un código hexadecimal. |
\cchar | Carácter de control nombrado. |
Secuencia | Descripción |
---|---|
[...] | Un solo carácter listado o contenido en un rango listado. Los rangos pueden ser combinados con los operadores {+} y {-} . Por ejemplo [a-z]{+}[0-9] es lo mismo que [0-9a-z] y [a-z]{-}[aeiou] es lo mismo que [b-df-hj-np-tv-z] . |
[^...] | Un solo carácter no listado y no contenido en un rango listado. |
. | Cualquier carácter, por omisión [^\n]. |
\d | Carácter numérico, [0-9] . |
\D | Carácter no numérico, [^0-9] . |
\s | Carácter de espacio en blanco, [ \t\n\r\f\v] . |
\S | Carácter no de espacio en blanco, [^ \t\n\r\f\v] . |
\w | Carácter de palabra, [a-zA-Z0-9_] . |
\W | Carácter de no palabra, [^a-zA-Z0-9_] . |
Secuencia | Descripción |
---|---|
\p{C} | Otro. |
\p{Cc} | Otro, control. |
\p{Cf} | Otro, formato. |
\p{Co} | Otro, uso privado. |
\p{Cs} | Otro, sustituto. |
\p{L} | Letra. |
\p{LC} | Letra, con casos. |
\p{Ll} | Letra, minúscula. |
\p{Lm} | Letra, modificada. |
\p{Lo} | Letra, otra. |
\p{Lt} | Letra, de título. |
\p{Lu} | Letra, mayúscula. |
\p{M} | Marca. |
\p{Mc} | Marca, espacio combinado. |
\p{Me} | Marca, encuadre. |
\p{Mn} | Marca, no espaciada. |
\p{N} | Número. |
\p{Nd} | Número, dígito decimal. |
\p{Nl} | Número, letra. |
\p{No} | Número, otro. |
\p{P} | Puntuación. |
\p{Pc} | Puntuación, conector. |
\p{Pd} | Puntuación, guion. |
\p{Pe} | Puntuación, cierre. |
\p{Pf} | Puntuación, comilla final. |
\p{Pi} | Puntuación, comilla inicial. |
\p{Po} | Puntuación, otra. |
\p{Ps} | Puntuación, apertura. |
\p{S} | Símbolo. |
\p{Sc} | Símbolo, moneda. |
\p{Sk} | Símbolo, modificado. |
\p{Sm} | Símbolo, matemático. |
\p{So} | Símbolo, otro. |
\p{Z} | Separador. |
\p{Zl} | Separador, línea. |
\p{Zp} | Separador, párrafo. |
\p{Zs} | Separador, espacio. |
Estas clases de caracteres solo están disponibles si la opción --enable-parle-utf32 ha sido pasada durante la compilación.
Secuencia | Greedy | Descripción |
---|---|---|
...|... | - | Probar los subpatrones en alternancia. |
* | yes | Corresponde 0 o más veces. |
+ | yes | Corresponde 1 o más veces. |
? | yes | Corresponde 0 o 1 vez. |
{n} | no | Corresponde exactamente n veces. |
{n,} | no | Corresponde al menos n veces. |
{n,m} | yes | Corresponde al menos n veces pero no más de m veces. |
*? | no | Corresponde 0 o más veces. |
+? | no | Corresponde 1 o más veces. |
?? | no | Corresponde 0 o 1 vez. |
{n,}? | no | Corresponde al menos n veces. |
{n,m}? | no | Corresponde al menos n veces pero no más de m veces. |
{MACRO} | - | Incluye la regex MACRO en la regex actual. |
Secuencia | Descripción |
---|---|
^ | Comienza por una cadena o después de un retorno de línea. |
$ | Termina por una cadena o antes de un retorno de línea. |
Secuencia | Descripción |
---|---|
(...) | Agrupa una expresión regular para modificar el orden de evaluación. |
(?r-s:pattern) |
Aplica la opción r y omite la opción s al interpretar el patrón.
Las opciones pueden ser cero o más de los caracteres i, s o x.
i significa insensible a mayúsculas y minúsculas.
-i significa sensible a mayúsculas y minúsculas.
s modifica el significado de . para que corresponda a cualquier carácter.
-s modifica el significado de . para que corresponda a cualquier carácter excepto \n .
x ignora los comentarios y los espacios en los patrones.
Los espacios son ignorados excepto si están escapados por una barra invertida, contenidos en ""s ,
o aparecen dentro de un rango de caracteres.
Estas opciones pueden ser aplicadas globalmente al nivel de las reglas pasando una combinación de los indicadores de bits al analizador léxico.
|
(?# comment ) | Omite todo lo que está en (). El primer carácter ) encontrado termina el patrón. No es posible para el comentario contener un carácter ). El comentario puede extenderse sobre varias líneas. |