O que são expressões regulares do Linux?
Expressões regulares do Linux são caracteres especiais que ajudam a pesquisar dados e a combinar padrões complexos. Expressões regulares são abreviadas como 'regexp' ou 'regex'. Eles são usados em muitos programas Linux como grep, bash, rename, sed, etc.
Tipos de expressões regulares
Para facilitar a compreensão, vamos aprender os diferentes tipos de Regex um por um.
- Expressões regulares básicas
- Expressões regulares de intervalo
- Expressões regulares estendidas
- Resumo
Clique aqui se o vídeo não estiver acessível
Expressões regulares básicas
Alguns dos comandos comumente usados com expressões regulares são tr, sed, vi e grep. Listados abaixo estão alguns dos Regex básicos.
Símbolo | Descrições |
---|---|
. | substitui qualquer personagem |
corresponde ao início da string | |
$ | corresponde ao final da string |
* | corresponde a zero ou mais vezes o caractere anterior |
\ | Representam caracteres especiais |
() | Expressões regulares de grupos |
? | Corresponde exatamente a um caractere |
Vamos ver um exemplo.
Execute cat sample para ver o conteúdo de um arquivo existente
Pesquise conteúdo que contenha a letra 'a'.
' ^ ' corresponde ao início de uma string. Vamos pesquisar por conteúdo que COMEÇA com um
Apenas as linhas que começam com caractere são filtradas. As linhas que não contêm o caractere 'a' no início são ignoradas.
Vejamos outro exemplo -
Selecione apenas as linhas que terminam com t usando $
Expressões regulares de intervalo
Essas expressões nos informam sobre o número de ocorrências de um caractere em uma string. Eles estão
Expressão | Descrição |
---|---|
{n} |
Corresponde ao caractere anterior que aparece 'n' vezes exatamente |
{n, m} | Corresponde ao caractere anterior aparecendo 'n' vezes, mas não mais do que m |
{n,} | Corresponde ao caractere anterior apenas quando aparece 'n' vezes ou mais |
Exemplo:
Filtre todas as linhas que contêm o caractere 'p'
Queremos verificar se o caractere 'p' aparece exatamente 2 vezes em uma string, um após o outro. Para isso, a sintaxe seria:
cat sample | grep -E p\{2}
Nota: Você precisa adicionar -E com essas expressões regulares.
Expressões regulares estendidas
Essas expressões regulares contêm combinações de mais de uma expressão. Alguns deles são:
Expressão | Descrição |
---|---|
\ + |
Corresponde a uma ou mais ocorrências do caractere anterior |
\? |
Corresponde a zero ou uma ocorrência do caractere anterior |
Exemplo:
Procurando por todos os caracteres 't'
Suponha que queremos filtrar as linhas onde o caractere 'a' precede o caractere 't'
Podemos usar comandos como
cat sample|grep "a\+t"
Expansão da cinta
A sintaxe para expansão de chaves é uma sequência ou uma lista separada por vírgulas de itens entre chaves "{}". Os itens inicial e final em uma sequência são separados por dois pontos "…".
Alguns exemplos:
Nos exemplos acima, o comando echo cria strings usando a expansão de chave.
Resumo:
- Expressões regulares são um conjunto de caracteres usados para verificar padrões em strings
- Eles também são chamados de 'regexp' e 'regex'
- É importante aprender expressões regulares para escrever scripts
- Algumas expressões regulares básicas são:
Símbolo | Descrições |
---|---|
. | substitui qualquer personagem |
corresponde ao início da string | |
$ | corresponde ao final da string |
- Algumas expressões regulares estendidas são:
Expressão | Descrição |
---|---|
\ + | Corresponde a uma ou mais ocorrências do caractere anterior |
\? | Corresponde a zero ou uma ocorrência do caractere anterior |
- Algumas expressões regulares de intervalo são:
Expressão | Descrição |
---|---|
{n} | Corresponde ao caractere anterior que aparece 'n' vezes exatamente |
{n, m} | Corresponde ao caractere anterior aparecendo 'n' vezes, mas não mais do que m |
{n,} | Corresponde ao caractere anterior apenas quando aparece 'n' vezes ou mais |
- A expansão da chave é usada para gerar strings. Ajuda na criação de várias strings de uma.