Comandos Linux para Totós – Tutorial nº33
Expressões Regulares
Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux para Totós” de 2014, com o objectivo de chegarmos ao tutorial nº100! Para isso contamos também com a vossa ajuda, sendo que a partir de agora podem enviar as vossas dicas para que nós possamos publicar (ver no final do artigo)
Preparados para mais um Comandos Linux para Totós ???….Lets go…! Hoje a pedido de alguns leitores, aqui fica uma introdução as expressões regulares.
Expressões regulares
São várias as aplicações desenvolvidas para Linux que recorrem as expressões regulares. Na prática, as expressões regulares permitem-nos identificar padrões, num determinado texto/palavra. Lembram-se quando usam o ‘*’, como wildcard, para identificar um conjunto de ficheiros?..o principio das expressões regulares é idêntico.
Dentro das expressões regulares há várias regras que podemos usar, de acordo com o resultado que pretendemos. Vamos a alguns exemplos.
Exemplo 1: Expressões simples
Os caracteres dentro de parêntesis rectos constituem uma expressão regular. Cada caracter pode fazer o match para uma determinada palavra. Por exemplo, vamos considerar uma expressão regular que identifique as palavras pai, pei, pii, poi, pui. Para isso basta criar a seguinte expressão regular:
p[aeiou]i
Exemplo 2: Expressões com sequência
Vamos agora considerar que pretendemos uma expressão regular que valide todas as palavras que tenham um conjunto de caracteres. Para este tipo de expressões, é necessário indicar qual o caracter para iniciar a pesquisa e qual o último caracter a validar, separados por ‘-‘- Por exemplo, vamos considerar que a expressão identifique as palavras g1x,g2x,g3x,g4x,g5x. Para isso basta criar a seguinte expressão regular:
g[1-5]x
Exemplo 3: Caracter único
O ‘.’ representa um único caracter. Por exemplo, a expressão b.b pode, por exemplo, identificar as palavras:
- b2b
- bcb
- bzb
- bAb
Exemplo 4: Inicio e fim de linha
O caracter (^) representa o inicio de uma linha e o ($) representa o fim de uma linha
Exemplo 5: Operadores
Nas expressões regulares podemos usar um conjunto de operadores. Aqui ficam os mais importantes:
- * – representa nenhuma ou várias ocorrências
- + – representa uma ou várias ocorrências
- ? – representa nenhuma ou uma ocorrência
De referir que o * pode ser combinado com outros operadores.
Exemplo 6: Várias palavras possíveis
Existem situações em que pretendemos validar mais do que uma ocorrênia. Para isso podemos usar a barra vertical. Por exemplo, pretendemos que encontrar as palavras pedro e pplware. Para isso basta criar a seguinte expressão regular:
pedro|pplware
Exemplo 7: Caracteres especiais
Como usamos alguns caracteres “especiais” nas pesquisas (especialmente como operadores) e pretendemos verificar se esse caracter está numa determinada palavra, é necessário incluir o caracter \ para diferenciar esse caracter “especial” do operador. Por exemplo, pretendemos criar uma expressão regular que valide a ocorrência pplware.com. Para isso basta a seguinte expressão.
pplware\.com
Para quem quiser saber mais sobre expressões regulares, aqui fica um site interessante link. Num próximo tutorial iremos mostrar como podemos usar expressões regulares com um conjunto de exemplos práticos.
Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos contributos? Alguém quer contribuir com artigos? mail me (ppinto at pplware.com) ou através da comunidade Pplware Linux.
Quais as expressões regulares que mais usam?
Este artigo tem mais de um ano
Eu como sou verdinho nestas coisas das expressões regulares costumo usar o site Python Regular Expression Testing Tool para testar http://www.pythonregex.com/
Apesar de dizer python, não funciona apenas para o python.
Boa dica 🙂
Veja esta ferramenta https://github.com/VerbalExpressions/JSVerbalExpressions é fixe para quem ainda está a aprender regex e perceber o que se está a fazer e tem adaptações para várias linguagens conhecidas! 😉
Eu no Mac para testar expressões uso o Regex Bar, mto simples e fácil de usar.
Download aqui: https://itunes.apple.com/us/app/regex-bar/id658781509?mt=12
Uso este http://www.regexr.com/
Dá muito jeito porque tem “todas” as funções e suas descrições 🙂