正規表現の使用

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クレートは豊富な機能を提供します。