Expressões regulares em Kotlin: guia completo para iniciantes
Expressões regulares (regex) são uma ferramenta poderosa para buscar, substituir e validar strings com base em padrões. Em Kotlin, o trabalho com expressões regulares é implementado através da classe Regex, que fornece métodos convenientes para processamento de texto. Neste artigo, vamos abordar os fundamentos das expressões regulares em Kotlin com exemplos práticos que ajudarão você a dominar rapidamente esta ferramenta.
O que é uma expressão regular?
Uma expressão regular é uma sequência de caracteres que define um padrão para busca em texto. Por exemplo, o padrão \\\\d{3} encontra três dígitos consecutivos, e [A-Z]+ encontra uma ou mais letras maiúsculas.
Em Kotlin, para trabalhar com regex, utiliza-se a classe Regex, que pode ser criada de duas formas:
// Forma 1: através do construtorval regex1 = Regex("\\\\d+")
// Forma 2: através da extensão toRegex()val regex2 = "\\\\d+".toRegex()Métodos principais do Regex em Kotlin
A classe Regex fornece vários métodos-chave para trabalhar com strings:
matches()— verifica se toda a string corresponde ao padrãocontainsMatchIn()— verifica se a string contém pelo menos uma correspondênciafind()— encontra a primeira correspondênciafindAll()— encontra todas as correspondênciasreplace()— substitui as correspondências pela string especificadasplit()— divide a string com base no padrão
Exemplo 1: Validação de endereço de e-mail
Vamos começar com um exemplo prático — validação de um endereço de e-mail:
fun isValidEmail(email: String): Boolean { val emailRegex = Regex("^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,}$") return emailRegex.matches(email)}
fun main() { val emails = listOf( "user@example.com", "invalid-email", "test@domain.co.uk", "@gmail.com" ) emails.forEach { email -> println("$email: ${if (isValidEmail(email)) "válido" else "inválido"}") }}Resultado da execução:
user@example.com: válidoinvalid-email: inválidotest@domain.co.uk: válido@gmail.com: inválidoExemplo 2: Extração de números de telefone
Suponha que temos um texto com diferentes números de telefone e queremos extrair todos os números no formato +7 (XXX) XXX-XX-XX:
fun extractPhoneNumbers(text: String): List { val phoneRegex = Regex("""\\+7 \\(\\d{3}\\) \\d{3}-\\d{2}-\\d{2}""") return phoneRegex.findAll(text).map { it.value }.toList()}
fun main() { val text = """ Contatos: Gerente: +7 (495) 123-45-67 Suporte: +7 (812) 987-65-43 Adicional: 8-800-555-35-35 """.trimIndent() val phones = extractPhoneNumbers(text) println("Números encontrados:") phones.forEach { println(it) }} Resultado:
Números encontrados:+7 (495) 123-45-67+7 (812) 987-65-43Observe: o número 8-800-555-35-35 não foi encontrado, pois não corresponde ao nosso padrão.
Exemplo 3: Substituição e limpeza de texto
Expressões regulares são ótimas para substituir partes do texto. Por exemplo, vamos remover todas as tags HTML de uma string:
fun removeHtmlTags(html: String): String { val tagRegex = Regex("<[^>]*>") return tagRegex.replace(html, "")}
fun main() { val htmlText = """ <h1>Título</h1> <p>Este é um texto <b>importante</b>.</p> <a href="link.html">Link</a> """.trimIndent() val cleanText = removeHtmlTags(htmlText) println("Texto limpo:") println(cleanText)}Resultado:
Blogs
Book Recommendations
Leia também
Expressões Regulares em Rust: Guia Completo com Exemplos
PHP em 2025: evolução, JIT e nova sintaxe — o que vai mudar?
Programação Assíncrona em C++: guia completo para iniciantes
Como se tornar um desenvolvedor Rust: dicas e currículo na prática
JavaScript no hackathon: como escrever um projeto incrível em 48 horas