2016-01-05 17 views

Trả lời

9

Bạn có thể thay thế tất cả các lần xuất hiện của một chuỗi trong một với std::str::replace:

let result = str::replace("Hello World!", "!", "?"); 
println!("{}", result); // => "Hello World!" 

Đối với trường hợp phức tạp hơn, bạn có thể sử dụng regex::Regex::replace_all từ regex:

use regex::Regex; 
let re = Regex::new(r"[A-Za-z]").unwrap(); 
let result = re.replace_all("Hello World!", "x"); 
println!("{}", result); // => "xxxxx xxxxx!" 
+5

Lưu ý rằng bạn cũng có thể gọi 'replace' làm phương thức trên' & str', như sau: 'let result =" Hello World! ". Thay thế ("! ","? ");'. – Dogbert

+1

xin lưu ý: Đó là một mô hình chống để biên dịch cùng một biểu thức chính quy trong một vòng lặp kể từ khi biên dịch thường tốn kém. Xem chi tiết trong mô tả thùng. –

7

Ngoài ra bạn có thể sử dụng vòng lặp và match biểu thức:

let s:String = "Hello, world!".chars() 
    .map(|x| match x { 
     '!' => '?', 
     'A'...'Z' => 'X', 
     'a'...'z' => 'x', 
     _ => x} 
    ).collect(); 
println!("{}", s);// Xxxxx, xxxxx? 
Các vấn đề liên quan