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。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。