Rust:
正規表現の使用
使い方:
Rustのregex
ライブラリは、正規表現を使う際の主要なツールです。これを使用するには、まずCargo.toml
への追加が必要です:
[dependencies]
regex = "1"
その後、Rustのコードでregexの機能を実装することができます。ここでは、いくつかの一般的な操作を行う方法を示します:
文字列内のパターンをマッチングする
use regex::Regex;
fn main() {
let re = Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap();
let date = "2023-04-15";
println!("Does the text match the date pattern? {}", re.is_match(date));
// 出力:Does the text match the date pattern? true
}
マッチを見つけてアクセスする
use regex::Regex;
fn main() {
let text = "Rust 2023, C++ 2022, Python 2021";
let re = Regex::new(r"\b(\w+)\s(\d{4})").unwrap();
for cap in re.captures_iter(text) {
println!("Language: {}, Year: {}", &cap[1], &cap[2]);
}
// 出力:
// Language: Rust, Year: 2023
// Language: C++, Year: 2022
// Language: Python, Year: 2021
}
テキストを置換する
use regex::Regex;
fn main() {
let re = Regex::new(r"\b(\w+)\s(\d{4})").unwrap();
let text = "Rust 2023, C++ 2022, Python 2021";
let replaced = re.replace_all(text, "$1 was updated in $2");
println!("Updated text: {}", replaced);
// 出力: Updated text: Rust was updated in 2023, C++ was updated in 2022, Python was updated in 2021
}
正規表現を使用してテキストを分割する
use regex::Regex;
fn main() {
let re = Regex::new(r"\W+").unwrap(); // 単語でない文字で分割
let text = "Rust-C++-Python-Go";
let fields: Vec<&str> = re.split(text).collect();
for field in fields {
println!("Language: {}", field);
}
// 出力:
// Language: Rust
// Language: C++
// Language: Python
// Language: Go
}
これらの例は、Rustで正規表現を使い始めるための基本的なガイドを提供します。より複雑なパターンマッチングやテキスト操作のタスクが必要になった場合、regex
クレートは豊富な機能を提供します。