שימוש בביטויים רגולריים

Rust:
שימוש בביטויים רגולריים

איך לעשות:

הספרייה regex ב-Rust היא המקום הראשון לפנות אליו לעבודה עם ביטויים רגולריים. לשימוש בה, תצטרך להוסיף אותה תחילה לקובץ Cargo.toml שלך:

[dependencies]
regex = "1"

לאחר מכן, תוכל להתחיל ליישם פונקציונליות של regex בקוד Rust שלך. הנה איך לבצע כמה פעולות נפוצות:

התאמת תבנית למחרוזת

use regex::Regex;

fn main() {
    let re = Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap();
    let date = "2023-04-15";

    println!("האם הטקסט תואם את תבנית התאריך? {}", re.is_match(date));
    // פלט: האם הטקסט תואם את תבנית התאריך? 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!("שפה: {}, שנה: {}", &cap[1], &cap[2]);
    }
    // פלט:
    // שפה: Rust, שנה: 2023
    // שפה: C++, שנה: 2022
    // שפה: Python, שנה: 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 עודכן ב-$2");

    println!("הטקסט שעודכן: {}", replaced);
    // פלט: הטקסט שעודכן: Rust עודכן ב-2023, C++ עודכן ב-2022, Python עודכן ב-2021
}

פיצול טקסט באמצעות Regex

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!("שפה: {}", field);
    }
    // פלט:
    // שפה: Rust
    // שפה: C++
    // שפה: Python
    // שפה: Go
}

הדוגמאות האלה מספקות מדריך בסיסי להתחלה עם ביטויים רגולריים ב-Rust. ככל שהצרכים שלך הופכים למתוחכמים יותר, הספרייה regex מציעה שפע של פונקציונליות לטפל במשימות מורכבות של התאמת תבניות ועיבוד טקסט.