Sử dụng biểu thức chính quy

Rust:
Sử dụng biểu thức chính quy

Làm thế nào:

Rust sử dụng crate regex cho các thao tác regex. Đầu tiên, thêm nó vào Cargo.toml của bạn:

[dependencies]
regex = "1"

Sau đó, bạn có thể khớp chuỗi như sau:

use regex::Regex;

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

    println!("Liệu văn bản có khớp với mẫu ngày tháng? {}", re.is_match(date));
}

Đầu ra:

Liệu văn bản có khớp với mẫu ngày tháng? true

Đối với việc bắt các nhóm:

use regex::Regex;

fn main() {
    let re = Regex::new(r"(\w+)@(\w+)\.(\w+)").unwrap();
    let email = "[email protected]";

    match re.captures(email) {
        Some(caps) => {
            println!("Người dùng: {}, Tên miền: {}, Phần mở rộng: {}", &caps[1], &caps[2], &caps[3]);
        }
        None => println!("Không tìm thấy kết quả."),
    }
}

Đầu ra:

Người dùng: user, Tên miền: example, Phần mở rộng: com

Nghiên Cứu Sâu

Regex đã tồn tại từ những năm 1950, với nguồn gốc từ lý thuyết tự động và ngôn ngữ hình thức. Module regex của Rust được xây dựng để tăng tốc độ và an toàn, tập trung vào việc biên dịch các mẫu regex hiệu quả tại thời gian chạy. Các phương án thay thế cho regex bao gồm các hàm chuỗi như find, splitreplace, phủ sóng các trường hợp sử dụng đơn giản hơn mà không cần mẫu. Regex trong Rust đặc biệt hiệu quả do được tối ưu hóa và biên dịch mẫu regex rộng rãi.

Xem Thêm