使用正则表达式实现Springboot项目下的文本变量替换工具类

Posted 北溟溟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用正则表达式实现Springboot项目下的文本变量替换工具类相关的知识,希望对你有一定的参考价值。

package com.yundi.atp.platform.util;

import lombok.extern.slf4j.Slf4j;

import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Author: yanp
 * @Description: 使用正则表达式,实现文本变量替换
 * @Date: 2021/10/15 18:34
 * @Version: 1.0.0
 */
@Slf4j
public class TemplateParseUtil {
    private final static Pattern pattern = Pattern.compile("((?<=\\\\{)([a-zA-Z\\\\d]+)(?=\\\\}))");


    public static String regParse(String template, Map<String, Object> map) {
        Matcher matcher = pattern.matcher(template);
        while (matcher.find()) {
            String key = matcher.group();
            template = template.replaceAll("\\\\$\\\\{" + key + "\\\\}", map.get(key) + "");
        }
        return template;
    }

    public static void main(String[] args) {
        String template = "${testOne} is a good ${testTwo}!";
        Map map = new HashMap(16);
        map.put("testOne", "I");
        map.put("testTwo", "Man");
        String result = regParse(template, map);
        System.out.println("result:" + result);
    }

}

 

以上是关于使用正则表达式实现Springboot项目下的文本变量替换工具类的主要内容,如果未能解决你的问题,请参考以下文章

用于在 HTML 标记中提取特定文本内容的正则表达式

iOS开发进阶 - 富文本正则替换表情

NLTK实现文本切分

C#在文本中查找字符串

正则表达式

❲寻根究底❳正则表达式“派别”简述