java正則表達(dá)式處理花括號(hào)內(nèi)容替換賦值問(wèn)題
正則表達(dá)式處理花括號(hào)內(nèi)容替換賦值
@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可動(dòng)態(tài)傳值被替換");
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("去除花括號(hào)并賦值");
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);//去掉花括號(hào)
str = str.replace(g,target + " <= '2019-09-09'");
}
System.out.println("str:" + str);
}執(zhí)行結(jié)果

如何使用正則替換{}里面包裹的內(nèi)容
使用正則表達(dá)式中的{}進(jìn)行匹配,然后通過(guò)替換來(lái)改變其包裹的內(nèi)容。
例如
假設(shè)你想要將一個(gè)字符串中的所有花括號(hào) {} 包裹的內(nèi)容替換為另一個(gè)字符串 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?"在這里,正則表達(dá)式 / {.+?}/g 匹配字符串中所有花括號(hào) {} 包裹的內(nèi)容。
其中,{.+?} 表示匹配任意字符,且只要匹配到一個(gè)字符就停止匹配,也就是非貪婪模式匹配。
/g 表示全局匹配。
最后,使用 replace() 方法將匹配到的內(nèi)容替換為 replacement。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis配置之properties和settings標(biāo)簽的用法
這篇文章主要介紹了Mybatis配置之properties和settings標(biāo)簽的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java8新特性O(shè)ptional類及新時(shí)間日期API示例詳解
這篇文章主要為大家介紹了Java8新特性O(shè)ptional類及新時(shí)間日期API示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Java Web請(qǐng)求與響應(yīng)實(shí)例詳解
這篇文章主要介紹了Java Web請(qǐng)求與響應(yīng)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-05-05
mybatis取別名typeAliases標(biāo)簽的位置放錯(cuò)導(dǎo)致報(bào)錯(cuò)的解決
這篇文章主要介紹了mybatis取別名typeAliases標(biāo)簽的位置放錯(cuò)導(dǎo)致報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
Java使用正則表達(dá)式去除小數(shù)點(diǎn)后面多余的0功能示例
這篇文章主要介紹了Java使用正則表達(dá)式去除小數(shù)點(diǎn)后面多余的0功能,結(jié)合具體實(shí)例形式分析了java字符串正則替換相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
springboot實(shí)現(xiàn)將自定義日志格式存儲(chǔ)到mongodb中
這篇文章主要介紹了springboot實(shí)現(xiàn)將自定義日志格式存儲(chǔ)到mongodb中的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringBoot3.x中自定義開(kāi)發(fā)通用SDK的實(shí)現(xiàn)
本文介紹了SpringBoot和Maven創(chuàng)建自定義的SDK,包括創(chuàng)建項(xiàng)目、修改配置、編寫配置類、設(shè)置配置文件、構(gòu)建Jar包等,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12

