rust使用Regex实现正则匹配的时候,如果想实现匹配双引号,就需要使用原始字符串字面量,不然无法使用双引号嵌套的。r#"..."# 就表示原始字符串字面量。
比如使用双引号匹配:
use regex::Regex;fn main() {println!("Hello, world!");let re = Regex::new(r#"\"双引号"#).unwrap();let text = "这是一个包含\"双引号\"的字符串";let replaced_text = re.replace_all(text, "'");println!("{}", replaced_text);
}// 匹配结果
这是一个包含'双引号'的字符串
或者直接使用双引号,不需要转译也可以:
let version_re = Regex::new(r#"version = "\d+\.\d+\.\d+";"#).unwrap();
如果不使用#号的字符串字面量,就会报错: