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。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
深入剖析java中String、StringBuffer、StringBuilder的区别
下面小编就为大家带来一篇深入剖析java中String、StringBuffer、StringBuilder的区别。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-05-05SpringBoot + MyBatis-Plus构建树形结构的几种方式
在实际开发中,很多数据都是树形结构,本文主要介绍了SpringBoot + MyBatis-Plus构建树形结构的几种方式,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-08-08全面解析Hibernate关联操作、查询操作、高级特性、并发处理机制
这篇文章主要介绍了全面解析Hibernate关联操作、查询操作、高级特性、并发处理机制的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下2016-06-06
最新评论