我找到了这个子字符串替换的例子:
use std::str;
let string = "orange";
let new_string = str::replace(string, "or", "str");
如果我想在同一个字符串上运行多个连续替换,出于清理目的,我该如何在不为每个替换分配新变量的情况下执行此操作?
如果您要编写地道的 Rust,您将如何编写多个链式子字符串替换?
最佳答案
regex engine可用于对字符串进行多次替换,但如果这实际上性能更高,我会感到惊讶:
extern crate regex;
use regex::{Captures, Regex};
fn main() {
let re = Regex::new("(or|e)").unwrap();
let string = "orange";
let result = re.replace_all(string, |cap: &Captures| {
match &cap[0] {
"or" => "str",
"e" => "er",
_ => panic!("We should never get here"),
}.to_string()
});
println!("{}", result);
}
关于rust - 在同一个字符串上运行多个连续替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27476895/