パターンに一致する文字を削除する

Rust:
パターンに一致する文字を削除する

How to: (やり方:)

fn main() {
    let mut greeting = String::from("こんにちわ、世界! 123");
    println!("Before: {}", greeting);

    greeting.retain(|c| !c.is_numeric());
    println!("After: {}", greeting);
}

// 出力:
// Before: こんにちわ、世界! 123
// After: こんにちわ、世界! 

このコードでは.retain()メソッドを使用し、数値にマッチする文字を削除しています。

Deep Dive (深掘り)

RustではString.retain()メソッドが便利です。このメソッドはベクタにも存在し、条件に合致しない値を効率良く削除できます。過去には正規表現などの方法も使用されましたが、Rustではregexクレートを使用することもできます。.retain()は元の文字列を変更する点でfilter()イテレータと異なります。内部的には、適合しない文字をシフトさせながら効率的に操作を行います。

See Also (参照)