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)文章
解決spring.thymeleaf.cache=false不起作用的問(wèn)題
這篇文章主要介紹了解決spring.thymeleaf.cache=false不起作用的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06Java中Json字符串直接轉(zhuǎn)換為對(duì)象的方法(包括多層List集合)
下面小編就為大家?guī)?lái)一篇Java中Json字符串直接轉(zhuǎn)換為對(duì)象的方法(包括多層List集合)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08Java 基于AQS實(shí)現(xiàn)自定義同步器的示例
這篇文章主要介紹了Java 基于AQS實(shí)現(xiàn)自定義同步器的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下2021-03-03Java設(shè)計(jì)模式之簡(jiǎn)單工廠 工廠方法 抽象工廠深度總結(jié)
設(shè)計(jì)模式(Design Pattern)是前輩們對(duì)代碼開(kāi)發(fā)經(jīng)驗(yàn)的總結(jié),是解決特定問(wèn)題的一系列套路。它不是語(yǔ)法規(guī)定,而是一套用來(lái)提高代碼可復(fù)用性、可維護(hù)性、可讀性、穩(wěn)健性以及安全性的解決方案2021-09-09SpringBoot綁定配置文件中變量的四種方式總結(jié)
當(dāng)在Spring Boot中需要綁定配置文件中的變量時(shí),可以使用以下注解:@PropertySourc,@Value,@Environment,@ConfigurationProperties,具體實(shí)現(xiàn)代碼示例文中講解的非常詳細(xì),需要的朋友可以參考下2023-11-11MyBatis使用注解開(kāi)發(fā)實(shí)現(xiàn)步驟解析
這篇文章主要介紹了MyBatis使用注解開(kāi)發(fā)實(shí)現(xiàn)步驟解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Java實(shí)現(xiàn)ATM銀行管理系統(tǒng)(控制臺(tái)版本)
這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)控制臺(tái)版本的ATM銀行管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06springboot自動(dòng)重連Redis的實(shí)現(xiàn)方法
由于網(wǎng)絡(luò)或服務(wù)器問(wèn)題,Redis連接可能會(huì)斷開(kāi),導(dǎo)致應(yīng)用程序無(wú)法繼續(xù)正常工作,本文主要介紹了springboot自動(dòng)重連Redis的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02