prog:regex
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
| prog:regex [2024/12/02 00:56] – [Padronização] inclusão do I-Regexp e do ECMA-262 hrcerq | prog:regex [2025/04/16 14:31] (atual) – edição externa 127.0.0.1 | ||
|---|---|---|---|
| Linha 7: | Linha 7: | ||
| E que algo é esse? No caso das expressões regulares, esse algo são caracteres. Ou seja, dentro de um conjunto arbitrário de caracteres, podem existir determinados padrões, mais especificamente, | E que algo é esse? No caso das expressões regulares, esse algo são caracteres. Ou seja, dentro de um conjunto arbitrário de caracteres, podem existir determinados padrões, mais especificamente, | ||
| - | Existe uma sintaxe a ser usada para formular expressões, | + | Existe uma sintaxe a ser usada para formular expressões, |
| ===== Aplicabilidade ===== | ===== Aplicabilidade ===== | ||
| Linha 16: | Linha 16: | ||
| Se quiser pesquisar por um nome ou CPF específico em um texto, é fácil, basta procurar por uma ocorrência dele. Mas se quiser procurar qualquer nome próprio ou qualquer CPF, você precisa expressar essa pesquisa como um padrão a ser procurado. É aí que expressões regulares são úteis. Elas proveem uma sintaxe para definir o padrão de pesquisa. | Se quiser pesquisar por um nome ou CPF específico em um texto, é fácil, basta procurar por uma ocorrência dele. Mas se quiser procurar qualquer nome próprio ou qualquer CPF, você precisa expressar essa pesquisa como um padrão a ser procurado. É aí que expressões regulares são úteis. Elas proveem uma sintaxe para definir o padrão de pesquisa. | ||
| + | |||
| + | |||
| + | ===== Sintaxe ===== | ||
| + | |||
| + | Para escrever expressões regulares, você precisa compreender a sintaxe dessas expressões. Existem diversos símbolos e combinações desses símbolos, cada qual com seu significado. A sintaxe varia um pouco, em alguns aspectos, a depender do [[# | ||
| + | |||
| + | Algumas expressões são extremamente simples, outras são praticamente ilegíveis de tão complexas. Tudo depende de quão precisa você quer que seja a expressão, e das situações em que pretende aplicar a expressão. | ||
| + | |||
| + | Nas subseções a seguir você verá os principais elementos que precisa saber sobre essa sintaxe. | ||
| + | |||
| + | ==== Literais ==== | ||
| + | |||
| + | ... | ||
| + | |||
| + | ==== Caracteres reservados ==== | ||
| + | |||
| + | ... | ||
| + | |||
| + | ==== Classes ==== | ||
| + | |||
| + | ... | ||
| + | |||
| + | === Classes pré-definidas === | ||
| + | |||
| + | ... | ||
| + | |||
| + | ==== Quantificadores ==== | ||
| + | |||
| + | ... | ||
| + | |||
| + | ==== Âncoras ==== | ||
| + | |||
| + | ... | ||
| + | |||
| + | ==== Alternativas ==== | ||
| + | |||
| + | ... | ||
| + | |||
| + | ==== Grupos ==== | ||
| + | |||
| + | ... | ||
| + | |||
| + | === Capturas e referências === | ||
| + | |||
| + | ... | ||
| ===== História ===== | ===== História ===== | ||
| Linha 25: | Linha 70: | ||
| Expressões regulares são padronizadas? | Expressões regulares são padronizadas? | ||
| - | Um dos padrões mais conhecidos é o **POSIX**, que prevê duas formas de expressão regular: //básicas// e //estendidas//. Ambas são descritas nas seguintes revisões: | + | Um dos padrões mais conhecidos é o **POSIX**, que prevê duas formas de expressão regular: |
| * [[https:// | * [[https:// | ||
| Linha 41: | Linha 86: | ||
| Ainda outro padrão é o **I-Regexp** ([[https:// | Ainda outro padrão é o **I-Regexp** ([[https:// | ||
| - | Por fim, temos também a especificação | + | Por fim, temos também a especificação |
| + | |||
| + | Além dos padrões que detalham a interpretação de expressões, | ||
| ===== Implementações ===== | ===== Implementações ===== | ||
| Linha 49: | Linha 97: | ||
| Para o padrão POSIX, as implementações estão presentes nas bibliotecas que implementam o POSIX. Como a biblioteca POSIX é uma extensão da biblioteca C, então é comum que observar implementações conjuntas dos dois padrões (por exemplo, // | Para o padrão POSIX, as implementações estão presentes nas bibliotecas que implementam o POSIX. Como a biblioteca POSIX é uma extensão da biblioteca C, então é comum que observar implementações conjuntas dos dois padrões (por exemplo, // | ||
| + | |||
| + | Existem também implementações avulsas do motor de expressões regulares do POSIX. Por exemplo, a biblioteca [[https:// | ||
| O padrão de expressões regulares do POSIX, obviamente é o padrão utilizado em programas especificados no padrão POSIX. | O padrão de expressões regulares do POSIX, obviamente é o padrão utilizado em programas especificados no padrão POSIX. | ||
| - | Já o padrão de Perl (também obviamente) é usado em [[https:// | + | Já o padrão de Perl (também obviamente) é usado em Perl (e por tabela em vários de seus módulos), mas acabou por se tornar influente, e posteriormente foi reimplementado na biblioteca [[https:// |
| - | ===== Sintaxe ===== | + | As implementações presentes em Python (módulo [[https:// |
| - | ... | + | Outro exemplo interessante é o da biblioteca [[https:// |
| + | |||
| + | Ainda outro caso curioso é o da biblioteca [[https:// | ||
| + | |||
| + | E esta não é uma lista exaustiva (como dificilmente poderia ser). Você pode querer conferir a tabela comparativa [[https:// | ||
| + | |||
| + | <note important> | ||
| + | Tenha em mente que algumas das bibliotecas citadas nesse comparativo da Wikipedia podem já ter sido descontinuadas. | ||
| + | </ | ||
| ===== Outros materiais ===== | ===== Outros materiais ===== | ||
prog/regex.1733101018.txt.gz · Última modificação: (edição externa)