Expressões regulares em Ruby
Expressões regulares, também conhecidas como regex, são padrões usados para pesquisar, modificar e manipular texto em Ruby. Eles são uma ferramenta poderosa para trabalhar com dados textuais de forma eficiente e precisa.
Criando expressões regulares: Link to heading
- São definidos entre duas barras (/).
- Podem conter uma combinação de caracteres especiais e literais.
- Os caracteres especiais têm um significado predefinido na expressão regular.
Caracteres básicos Link to heading
Expressão | significado |
---|---|
. | (Ponto): Corresponde a qualquer caractere único (exceto nova linha). |
[] | (Colchetes): Faixa de caracteres. Exemplo: [az] corresponde a qualquer letra minúscula de a a z. |
\w | (Letra ou número): Corresponde letras, números e sublinhado (_). |
\W | (Não é letra nem número): Corresponde a qualquer caractere que não seja letra, número ou sublinhado. |
\s | (Em branco): Corresponde a espaços, tabulações, retornos de carro e quebras de linha. |
\S | (Não-espaço em branco): Corresponde a qualquer caractere que não seja um espaço em branco. |
\d | (Dígito): Corresponde a qualquer dígito de 0 a 9. |
\D | (Sem dígito): Corresponde a qualquer caractere que não seja um dígito de 0 a 9. |
Metacaracteres especiais Link to heading
Expressão | significado |
---|---|
^ | (Início): Corresponde ao início da string. |
$ | (End): Corresponde ao final da string. |
\b | (Borda da palavra): Corresponde ao início ou ao final de uma palavra. |
* | (Zero ou mais): Repete o caractere que o precede zero ou mais vezes. |
+ | (Um ou mais): Repete o caractere que o precede uma ou mais vezes. |
? | (Zero ou um): Repete o caractere que o precede zero ou uma vez. |
| | (Alternativa): Corresponde a qualquer uma das expressões que a precedem ou seguem. |
() | (Grupo): Agrupa uma expressão para tratá-la como uma única unidade. |
{m,n} | (Repetição específica): Repete o caractere ou grupo que o precede no mínimo m vezes e no máximo n vezes. |
Exemplo: Link to heading
is_gmail_regex = /\w+@gmail.com/
Correspondência de padrões: Link to heading
- O método match pode ser usado para verificar se uma string corresponde a uma expressão regular.
- O método match retorna um objeto MatchData se houver uma correspondência ou nil se não houver.
Exemplo: Link to heading
"john@gmail.com".match(is_gmail_regex) # => <MatchData "john@gmail.com">
"john@gmail".match(is_gmail_regex) # => nil
Classes de personagens: Link to heading
- Existem diferentes classes de caracteres para simplificar a escrita de expressões regulares.
Exemplo: Link to heading
numero_regex = /\d+/
"21354".match(numero_regex) # => <MatchData "21354">
"text".match(numero_regex) # => nil
Quantificadores: Link to heading
- São usados para indicar o número de vezes que um caracter ou padrão deve ser repetido.
Exemplo: Link to heading
# Pesquise uma palavra seguida de um espaço e pesquise uma letra
/\w+ \w/ =~ "Olá mundo" # => 0
# Pesquise uma palavra seguida de dois ou mais espaços e depois uma letra
/\w+ \s+\w/ =~ "Olá mundo" # => 0
Agrupamento: Link to heading
- Os parênteses podem ser usados para agrupar partes de uma expressão regular.
Exemplo: Link to heading
# Pesquisa uma data no formato dd/mm/aaaa
/\d{2}\/\d{2}\/\d{4}/ =~ "12/03/2024" # => 0
# Pesquisa uma data no formato dd/mm/aaaa, onde dd e mm podem ter um ou dois dígitos
/\d{1,2}\/\d{1,2}\/\d{4}/ =~ "12/03/2024" # => 0
Operadores lógicos: Link to heading
- Operadores lógicos podem ser usados para combinar diferentes expressões regulares.
Exemplo: Link to heading
# Pesquisa um endereço de e-mail que pode ser do Gmail ou Hotmail
/(gmail|hotmail)\.com/ =~ "john@gmail.com" # => 0
/(gmail|hotmail)\.com/ =~ "john@hotmail.com" # => 0
Em resumo, expressões regulares são uma ferramenta poderosa para trabalhar com texto em Ruby. Sua flexibilidade e expressividade os tornam parte fundamental da linguagem para tarefas como busca e validação de dados, extração de informações e transformação de textos.
Continue aprendendo sobre expressões regulares para aproveitar ao máximo seu potencial em seus programas!
Dicas adicionais: Link to heading
- Você pode usar a ferramenta rubular para testar e depurar suas expressões regulares.
- Você pode usar a biblioteca rexml para trabalhar com XML.
- Você pode usar a biblioteca nokogiri para trabalhar com HTML.
Continue experimentando expressões regulares para criar programas mais robustos e versáteis!
Aqui estão alguns exemplos adicionais de como expressões regulares podem ser usadas: Link to heading
- Validar a entrada de um usuário
- Extraia informações de uma página da web
- Formatar texto
- Encontre e substitua texto
- Gerar código
- Traduzir idiomas
- Analisar dados
As possibilidades são infinitas!