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 (参照)
- Rustの公式ドキュメント: std::string::String
regex
クレートのドキュメント: regex- Rustプログラミング言語の書籍: The Rust Programming Language