SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
16.11.2024

Lição: 45: Manipulação de Strings e Expressões Regulares em Swift

Strings são um dos tipos de dados mais utilizados em programação, e Swift fornece um conjunto poderoso de recursos para manipulação de strings e uso de expressões regulares. Nesta aula, vamos explorar diversas técnicas de manipulação de strings e como utilizar expressões regulares para processamento avançado de texto.

Operações Básicas com Strings

Swift oferece vários métodos para manipulação de strings. Aqui estão algumas operações básicas:

Criando Strings

Você pode criar strings usando literais de string:

let saudacao = "Olá, Mundo!"

Concatenando Strings

Você pode concatenar strings usando o operador +:

let nome = "Alice"
let mensagemDeBoasVindas = saudacao + " Meu nome é " + nome + "."
print(mensagemDeBoasVindas) // Olá, Mundo! Meu nome é Alice.

Interpolação de Strings

A interpolação de strings permite inserir valores dentro de strings:

let idade = 30
let mensagem = "Eu tenho \(idade) anos."
print(mensagem) // Eu tenho 30 anos.

Comprimento da String

Para obter o comprimento de uma string, use a propriedade count:

let frase = "Olá"
print("O comprimento da frase é \(frase.count).") // O comprimento da frase é 3.

Substrings

Você pode extrair substrings utilizando índices. As strings em Swift usam codificação UTF-16, então a manipulação de índices é um pouco diferente.

Obtendo uma Substring

let palavra = "Swift"
let indice = palavra.index(palavra.startIndex, offsetBy: 2)
let substring = palavra[..<indice]
print(substring) // Sw

Substituindo Substrings

Você também pode substituir partes de strings:

var stringMutavel = "Olá, Mundo!"
stringMutavel.replaceSubrange(stringMutavel.range(of: "Mundo")!, with: "Swift")
print(stringMutavel) // Olá, Swift!

Expressões Regulares

Expressões regulares fornecem uma maneira de buscar, corresponder e manipular strings com base em padrões.

Importando o Framework Foundation

Para usar expressões regulares em Swift, importe o framework Foundation:

import Foundation

Criando uma Expressão Regular

Você pode criar uma expressão regular usando a classe NSRegularExpression:

let padrao = "\\d+" // padrão para corresponder um ou mais dígitos
let regex = try! NSRegularExpression(pattern: padrao, options: [])

Encontrando Correspondências

Para encontrar correspondências dentro de uma string:

let texto = "Há 3 gatos e 4 cães."
let correspondencias = regex.matches(in: texto, options: [], range: NSRange(location: 0, length: texto.count))

for correspondencia in correspondencias {
    let intervalo = correspondencia.range
    let stringCorrespondencia = (texto as NSString).substring(with: intervalo)
    print("Encontrada correspondência: \(stringCorrespondencia)") // Encontrada correspondência: 3, Encontrada correspondência: 4
}

Substituindo Correspondências

Você também pode realizar substituições usando expressões regulares:

let textoModificado = regex.stringByReplacingMatches(in: texto, options: [], range: NSRange(location: 0, length: texto.count), withTemplate: "X")
print(textoModificado) // Há X gatos e X cães.

Exemplo: Validação de Email

Vamos juntar essas informações em um exemplo que valida endereços de email usando expressões regulares.

Função de Validação de Email

func isValidEmail(email: String) -> Bool {
    let padraoEmail = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
    let regex = try! NSRegularExpression(pattern: padraoEmail)
    let correspondencias = regex.matches(in: email, options: [], range: NSRange(location: 0, length: email.count))
    return correspondencias.count > 0
}

// Testando a função
let email1 = "exemplo@exemplo.com"
let email2 = "email-invalido.com"

print("\(email1) é válido: \(isValidEmail(email: email1))") // exemplo@exemplo.com é válido: true
print("\(email2) é válido: \(isValidEmail(email: email2))") // email-invalido.com é válido: false

Conclusão

Nesta aula, abordamos os fundamentos da manipulação de strings em Swift, incluindo criação, concatenação, extração de substrings e modificação. Também exploramos expressões regulares—como defini-las, encontrar correspondências, substituir texto e validar formatos como endereços de email. Dominar essas ferramentas pode melhorar significativamente sua capacidade de lidar e manipular dados textuais de forma eficaz em suas aplicações Swift.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!