ccf模板生成系统rust解答

use std::collections::HashMap;
use std::io::{self};
use regex::Regex;

fn main() {
    let mut first_line = String::new();
    io::stdin().read_line(&mut first_line).unwrap();

    let mut parts = first_line.trim().split_whitespace();
    let m: usize = parts.next().unwrap().parse().unwrap();
    let n: usize = parts.next().unwrap().parse().unwrap();

    let mut template = Vec::new();
    for _ in 0..m {
        let mut line = String::new();
        io::stdin().read_line(&mut line).unwrap();
        template.push(line.trim_end().to_string());
    }

    let mut map = HashMap::new();
    for _ in 0..n {
        let mut line = String::new();
        io::stdin().read_line(&mut line).unwrap();
        let line = line.trim_end();

        let index = line.find(' ').unwrap();
        let key = &line[..index];
        let value = &line[index + 2..line.len() - 1];
        map.insert(key.to_string(), value.to_string());
    }

    let re = Regex::new(r"\{\{ (.*?) }}").unwrap();

    for line in template {
        let result = re.replace_all(&line, |caps: &regex::Captures| {
            let key = &caps[1];
            map.get(key).cloned().unwrap_or_default()
        });
        println!("{}", result);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值