正则表达式替换占位符

解析占位符

如何从下面的一个字符串中解析除占位符,并根据变量的类型替换。

java 复制代码
"(<{AMT_field_value,string}> == nil ? false : string.contains( <{AMT_rule_value,string}>, <{AMT_field_value,array}>))

代码如下

java 复制代码
import org.apache.flink.api.java.tuple.Tuple2;

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

/**
 * @className: ExpressionParser
 * @Description:
 * @Author: wangyifei
 * @Date: 2023/10/11 21:45
 */
public class ExpressionParser {
    public static void main(String[] args) {
        String str = "(<{AMT_field_value,string}> == nil ? false : string.contains( <{AMT_rule_value,string}>, <{AMT_field_value,array}>))";
        Pattern p = Pattern.compile("<\\{(.*?)\\}>");
        Matcher matcher = p.matcher(str);
        String find = "";
        String[] split = null ;
        String key = null;
        String value = null ;
        String replace = str ;
        Map<String,Object> parameter = new HashMap<>();
        parameter.put("AMT_field_value","vvvv");
        while (matcher.find()) {
            find = matcher.group(1);
            split = find.split("\\s*,\\s*");
            key = split[0];
            value = split[1];
            replace = replace.replace("<{"+find+"}>" , String.valueOf(parameter.get(key)));
        }
        System.out.println(replace);
    }
}
相关推荐
叶 落2 天前
[Java 基础]正则表达式
java·正则表达式·java 基础
fs哆哆4 天前
在VB.net中,用正则表达式方法清除干扰符号方法
开发语言·正则表达式·c#·.net
奔跑吧邓邓子5 天前
正则表达式:开启文本处理的魔法之门
正则表达式·文本处理·高效应用
相知-.6 天前
shell正则表达式
linux·运维·正则表达式
面朝大海,春不暖,花不开8 天前
使用 Python 正则表达式实现文本替换与电话号码规范化
python·mysql·正则表达式
前端小白从0开始8 天前
关于前端常用的部分公共方法(二)
前端·vue.js·正则表达式·typescript·html5·公共方法
岁忧8 天前
LeetCode 高频 SQL 50 题(基础版)之 【高级字符串函数 / 正则表达式 / 子句】· 下
sql·leetcode·正则表达式
岁忧8 天前
MySQL中【正则表达式】用法
数据库·mysql·正则表达式
htj1010 天前
C# 使用正则表达式
正则表达式·c#
ZZZKKKRTSAE10 天前
快速上手Linux全局搜索正则表达式(grep)
linux·服务器·正则表达式