Expressões regulares em Kotlin com exemplos: para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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ão
  • containsMatchIn() — verifica se a string contém pelo menos uma correspondência
  • find() — encontra a primeira correspondência
  • findAll() — encontra todas as correspondências
  • replace() — substitui as correspondências pela string especificada
  • split() — 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álido


Exemplo 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-43


Observe: 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