Ta bort tecken som matchar ett mönster

Rust:
Ta bort tecken som matchar ett mönster

Hur man gör:

fn main() {
    let text = "Hej, hur mår du? 123";
    let pattern = "[^a-zA-Z åäöÅÄÖ]"; // Mönstret matchar allt som inte är bokstäver eller mellanslag
    let cleaned_text = regex::Regex::new(pattern).unwrap().replace_all(&text, "");
    println!("Rensad text: {}", cleaned_text);
}

I exemplet ovan används regex-paketet för att matcha och ta bort tecken baserat på ett specifikt mönster. Efter att koden körs får vi utskriften:

Rensad text: Hej, hur mår du

Fördjupning

Borttagning av tecken baserat på mönster är inget nytt, och har sitt ursprung i tidiga text-processeringsverktyg som sed och awk. Rost erbjuder flera alternativ för detta; regex-paketet är dock det mest robusta och flexibla verktyget för att hantera komplexa mönster. Implementationen använder “lazy DFA” vilket innebär snabb och effektiv matchning. Alternativ till regex inkluderar att använda str-metoder som replace() för enklare byten, men dessa saknar möjligheten att använda mönster.

Se även