正则表达式替换占位符

解析占位符

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

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);
    }
}
相关推荐
for_ever_love__3 天前
python基础语法学习: 正则表达式
python·学习·正则表达式
asdfg12589635 天前
一个例子通俗理解Java中正则表达式用法
java·正则表达式
Tanner_SL5 天前
Linux笔记之正则表达式和文本处理grep,sed,awk命令
linux·正则表达式
谢亮_vipxieliang7 天前
手机号验证技术方案:号段规则与正则表达式
java·服务器·spring boot·正则表达式·hibernate
zx_741484817 天前
【Python 入门】Python 正则表达式零基础讲解:基础语法 + 元字符 + 常用案例
python·正则表达式
deli0070077 天前
正则表达式可视化测试工具:输入即匹配,高亮一目了然
git·测试工具·正则表达式
ydd1001008 天前
正则表达式匹配
正则表达式·代理模式
落魄大学生之流水线上谋生计9 天前
正则表达式完全指南:从入门到精通
正则表达式
tianyu23411 天前
Java 正则表达式终极指南:从 Pattern 到 Matcher,从双重转义到性能优化,一篇全搞定
java·开发语言·正则表达式·group·find·pattern·matcher
OPEN-F12 天前
Python进阶教程:正则表达式进阶与文本处理
开发语言·python·正则表达式