Xóa các ký tự phù hợp với một mẫu

Rust:
Xóa các ký tự phù hợp với một mẫu

Làm thế nào:

Trong Rust, chúng ta có thể sử dụng phương thức replace từ kiểu String hoặc regex cho các mẫu phức tạp hơn. Dưới đây là cách bạn làm:

fn main() {
    let phrase = "Hello, _world_! -- Programming in Rust --".to_string();
    // Thay thế gạch dưới bằng không
    let cleaned = phrase.replace("_", "");
    println!("{}", cleaned);

    // Sử dụng regex cho các mẫu phức tạp hơn (nhớ thêm crate regex vào Cargo.toml)
    let regex = regex::Regex::new(r"--.*?--").unwrap();
    let s = regex.replace_all(&cleaned, "");
    println!("{}", s);
}

// Đầu ra:
// Hello, world! -- Programming in Rust --
// Hello, world!

Sâu hơn nữa

Việc xóa các ký tự khớp với một mẫu không chỉ riêng gì Rust; đây là một hoạt động thông thường trong nhiều ngôn ngữ lập trình. Trong quá khứ, các công cụ như sed trong Unix đã được sử dụng để biến đổi văn bản theo những cách mạnh mẽ, và bây giờ các ngôn ngữ cung cấp các hàm tích hợp sẵn cho việc thao tác chuỗi.

Trong Rust, cách tiếp cận tiêu chuẩn là sử dụng replace cho các mẫu cố định đơn giản. Đối với các biểu tượng đại diện, lặp lại, hoặc loại bỏ có điều kiện, chúng ta sẽ chuyển sang regex. Crate regex là công cụ de facto cho việc này, nhưng nhớ rằng, các hoạt động regex tiêu tốn nhiều chi phí về hiệu suất, vì vậy hãy sử dụng chúng một cách thận trọng.

Các đảm bảo về sự an toàn của Rust cũng mở rộng đến việc xử lý văn bản. Trong khi ở một số ngôn ngữ, việc thao tác chuỗi có thể là nguồn gốc của các lỗ hổng bảo mật như tràn bộ đệm, thiết kế của Rust bảo vệ chống lại những vấn đề như vậy.

Xem thêm