java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 正则表达式处理花括号内容替换赋值

java正则表达式处理花括号内容替换赋值问题

作者:小栋哟

这篇文章主要介绍了java正则表达式处理花括号内容替换赋值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

正则表达式处理花括号内容替换赋值

 @Test
    public   void replaceStr() {
        System.out.println("将{gid}替换为某值");
        String name1 = "name";
        String cql = "MATCH p=({gid: {gid}})-[r:paper_yantian1586528279416]->() RETURN p LIMIT 25 ";
        System.out.println(cql.replaceAll("\\{[gid^}]*\\}", "\""+name1+"\"}"));
        System.out.println("将{name}替换为某值,{name}中的name可动态传值被替换");
        String sql = "select name from person where name = {name} and sex = %s";
        String name = "name";
        int val = 123;
        System.out.println(sql.replaceAll("\\{["+name+"^}]*\\}", val+""));
        System.out.println("暴力替换");
        System.out.println(sql.replace("{name}", "123"));
        System.out.println("去除花括号并赋值");
        String str = "{f.name} and {f.age}";
        String pattern = "\\{[^}]*\\}";
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(str);
        while (m.find()) {
            String g = m.group();
            String target = g.substring(1, g.length() - 1);//去掉花括号
            str = str.replace(g,target + " <= '2019-09-09'");
        }
        System.out.println("str:" + str);
    }

执行结果

如何使用正则替换{}里面包裹的内容

使用正则表达式中的{}进行匹配,然后通过替换来改变其包裹的内容。

例如

假设你想要将一个字符串中的所有花括号 {} 包裹的内容替换为另一个字符串 replacement,可以使用如下代码:

const str = "Hello, {name}! How are you {today}?";
const replaced = str.replace(/{.+?}/g, "replacement");
console.log(replaced); // Output: "Hello, replacement! How are you replacement?"

在这里,正则表达式 / {.+?}/g 匹配字符串中所有花括号 {} 包裹的内容。

其中,{.+?} 表示匹配任意字符,且只要匹配到一个字符就停止匹配,也就是非贪婪模式匹配。

/g 表示全局匹配。

最后,使用 replace() 方法将匹配到的内容替换为 replacement。 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文