Quotes verwijderen uit een string

Rust:
Quotes verwijderen uit een string

Hoe te:

fn remove_quotes(s: &str) -> String {
    s.trim_matches(|c| c == '\"' || c == '\'').to_string()
}

fn main() {
    let quoted_str = "\"Hallo, Rustaceans!\"";
    let cleaned_str = remove_quotes(quoted_str);
    println!("{}", cleaned_str);
    // Uitvoer: Hallo, Rustaceans!
}

Soms heb je een string met gemengde aanhalingstekens, zoals dit:

fn main() {
    let mixed_quoted = "'Rust zegt: \"Hallo, Wereld!\"'";
    let cleaned_str = remove_quotes(mixed_quoted);
    println!("{}", cleaned_str);
    // Uitvoer: Rust zegt: "Hallo, Wereld!"
}

Hier worden alleen de buitenste enkele aanhalingstekens verwijderd.

Diepere Duik

Als je aanhalingstekens uit een string verwijdert, vraag je je misschien af waarom het niet gewoon een simpele .replace("\"", "") is. In het begin was omgaan met tekst minder gestandaardiseerd, en hadden verschillende systemen verschillende manieren om tekst op te slaan en over te dragen, vaak met een soort ’escape sequentie’ voor speciale tekens. Rust’s trim_matches methode is veelzijdiger, hiermee kun je meerdere tekens specificeren om te trimmen, en of je vanaf het begin (prefix), het einde (suffix), of beide kanten van de string wilt trimmen.

Er zijn natuurlijk alternatieven. Regex is de krachtpatser voor stringmanipulatie, in staat om complexe patronen te matchen, en zou overkill zijn voor alleen het verwijderen van aanhalingstekens. Bibliotheken zoals trim_in_place kunnen in-place trimming bieden zonder de overhead van het creëren van een nieuw String object, wat wenselijk kan zijn voor prestatiekritische toepassingen.

Onder de motorkap itereert trim_matches daadwerkelijk door de karakters van de string vanaf beide uiteinden, controlerend tegen het opgegeven patroon tot een niet-overeenkomend karakter wordt gevonden. Het is efficiënt voor wat het doet, maar wees je er altijd van bewust dat het werkt met Unicode scalarwaarden. Als je string mogelijk multi-byte Unicode-karakters bevat, hoef je je geen zorgen te maken dat het ze opbreekt.

Zie Ook