O Parle suporta correspondência a expressões regulares semelhantes ao Flex.
Também são suportados os seguintes conjuntos de caracteres POSIX:
[:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:].
As classes de caracteres Unicode não estão habilitadas por padrão. Use --enable-parle-utf32 para torná-las disponíveis.
Uma codificação específica pode ser mapeada com uma expressão regular construída corretamente.
Por exemplo, para corresponder ao símbolo EURO codificado em UTF-8, a expressão regular [\xe2][\x82][\xac] pode ser usada.
O padrão para uma string codificada em UTF-8 poderia ser [ -\x7f]{+}[\x80-\xbf]{+}[\xc2-\xdf]{+}[\xe0-\xef]{+}[\xf0-\xff]+.
| Sequência | Descrição |
|---|---|
| \a | Alerta sonoro. |
| \b | Backspace. |
| \e | ESC, \x1b. |
| \n | Nova linha. |
| \r | Retorno de carro. |
| \f | Alimentação de formulário, \x0c. |
| \t | Tabulação horizontal, \x09. |
| \v | Tabulação vertical, \x0b. |
| \oct | Caractere especificado por um código octal de três dígitos. |
| \xhex | Caractere especificado por um código hexadecimal. |
| \cchar | Caractere de controle nomeado. |
| Sequência | Descrição |
|---|---|
| [...] | Um único caractere listado ou contido em um intervalo listado. Intervalos podem ser combinados com os operadores {+} e {-}. Por exemplo, [a-z]{+}[0-9] é o mesmo que [0-9a-z] e [a-z]{-}[aeiou] é o mesmo que [b-df-hj-np-tv-z]. |
| [^...] | Um único caractere não listado e não contido em um intervalo listado. |
| . | Qualquer caractere, padrão [^\n]. |
| \d | Caractere de dígito, [0-9]. |
| \D | Caractere não-dígito, [^0-9]. |
| \s | Caractere de espaço em branco, [ \t\n\r\f\v]. |
| \S | Caractere sem espaço em branco, [^ \t\n\r\f\v]. |
| \w | Caractere de palavra, [a-zA-Z0-9_]. |
| \W | Caractere que não é de palavra, [^a-zA-Z0-9_]. |
| Sequência | Descrição |
|---|---|
| \p{C} | Outro. |
| \p{Cc} | Outro, controle. |
| \p{Cf} | Outro, formato. |
| \p{Co} | Outro, uso privado. |
| \p{Cs} | Outro, substituto. |
| \p{L} | Letra. |
| \p{LC} | Letra, capitalizada. |
| \p{Ll} | Letra, minúscula. |
| \p{Lm} | Letra, modificador. |
| \p{Lo} | Letra, outro. |
| \p{Lt} | Letra, de título. |
| \p{Lu} | Letra, maiúscula. |
| \p{M} | Marca. |
| \p{Mc} | Marca, combinação de espaço. |
| \p{Me} | Marca, delimitador. |
| \p{Mn} | Marca, sem espaçamento. |
| \p{N} | Número. |
| \p{Nd} | Número, dígito decimal. |
| \p{Nl} | Número, letra. |
| \p{No} | Número, outro. |
| \p{P} | Pontuação. |
| \p{Pc} | Pontuação, conector. |
| \p{Pd} | Pontuação, traço. |
| \p{Pe} | Pontuação, fechamento. |
| \p{Pf} | Pontuação, aspas de fechamento. |
| \p{Pi} | Pontuação, aspas de abertura. |
| \p{Po} | Pontuação, outro. |
| \p{Ps} | Pontuação, abertura. |
| \p{S} | Símbolo. |
| \p{Sc} | Símbolo, moeda. |
| \p{Sk} | Símbolo, modificador. |
| \p{Sm} | Símbolo, matemático. |
| \p{So} | Símbolo, outro. |
| \p{Z} | Separador. |
| \p{Zl} | Separador, linha. |
| \p{Zp} | Separador, parágrafo. |
| \p{Zs} | Separador, espaço. |
Essas classes de caracteres só estarão disponíveis se a opção --enable-parle-utf32 tiver sido passada no momento da compilação.
| Sequência | Guloso | Descrição |
|---|---|---|
| ...|... | - | Tenta subpadrões alternadamente. |
| * | sim | Corresponde 0 ou mais vezes. |
| + | sim | Corresponde 1 ou mais vezes. |
| ? | sim | Corresponde 0 ou 1 vez. |
| {n} | no | Corresponde exatamente n vezes. |
| {n,} | sim | Corresponde pelo menos n vezes. |
| {n,m} | sim | Corresponde pelo menos n vezes mas não mais que m vezes. |
| *? | não | Corresponde 1 ou mais vezes. |
| +? | não | Corresponde 1 ou mais vezes. |
| ?? | não | Corresponde 0 ou 1 vez. |
| {n,}? | não | Corresponde pelo menos n vezes. |
| {n,m}? | não | Corresponde pelo menos n vezes mas não mais que m vezes. |
| {MACRO} | - | Inclui a MACRO de expressão regular na expressão atual. |
| Sequência | Descrição |
|---|---|
| ^ | Início da string ou após uma nova linha. |
| $ | Fim da string ou antes de uma nova linha. |
| Sequência | Descrição |
|---|---|
| (...) | Agrupa uma expressão regular para substituir a precedência do operador padrão. |
| (?r-s:pattern) |
Aplica a opção r e omite a opção s ao interpretar o padrão.
As opções podem ser zero ou mais dos caracteres i, s ou x.
i significa sem diferenciação de maiúsculas/minúsculas.
-i significa com diferenciação de maiúsculas/minúsculas.
s altera o significado de . para corresponder a qualquer caractere.
-s altera o significado de . para corresponder a qualquer caractere exceto \n.
x ignora comentários e espaços em branco em expressões.
Espaços em branco são ignorados, a menos que sejam precedidos por barra invertida, estejam contidos entre ""s,
ou apareçam dentro de um intervalo de caracteres.
Essas opções podem ser aplicadas globalmente no nível de regras passando uma combinação de sinalizadores de bits para o analisador léxico.
|
| (?# comment ) | Omite tudo dentro de (). O primeiro caractere ) encontrado encerra o padrão. Não é possível que o comentário contenha um caractere ). O comentário pode abranger várias linhas. |