Java 實(shí)現(xiàn)repalceAll只替換第二個(gè)匹配到的字符串
String replace replaceFirst repaceAll區(qū)別
replace(char oldChar, char newChar)
返回一個(gè)新的字符串,它是通過(guò)用 newChar 替換此字符串中出現(xiàn)的所有 oldChar 得到的。
replaceAll(String regex, String replacement)
使用給定的 replacement 替換此字符串所有匹配給定的正則表達(dá)式的子字符串
replaceFirst(String regex, String replacement)
使用給定的 replacement 替換此字符串匹配給定的正則表達(dá)式的第一個(gè)子字符串。
總結(jié):
replace 替換的是char,replaceAll、replaceFirst替換的可以是字符串,也可以是正則表達(dá)式;三者返回的都是一個(gè)新的字符串。
例題
需求:將字符串 time:[* TO *] 中第二個(gè)*替換為 test
實(shí)現(xiàn)代碼
@Test
public void replaceSecondStr() {
String test = "time:[* TO *]";
String result1 = test.replaceAll("(\\*)(.*?)(\\1)(.*?)", "$1$2test$4");
System.out.println("原字符串:" + test);
System.out.println("替換后:" + result1);
}
輸出:
原字符串:time:[* TO *]
替換后:time:[* TO test]
總結(jié):
正則中()表示提取匹配的字符串并分組;會(huì)分配存儲(chǔ)空間,可以用$1取得匹配到的字符串;
\\1表示與第一個(gè)()中匹配的內(nèi)容相同,也可以繼續(xù)寫(\\*);
(.*?)為勉強(qiáng)匹配方式,意思是匹配任何字符。
補(bǔ)充(取出匹配到的字符串)
@Test
public void findGroup() {
String test = "time:[* TO *]";
Matcher matcher = Pattern.compile("(\\*)(.*?)(\\1)(.*?)").matcher(test);
if (matcher.find()) {
System.out.println(matcher.group());
}
}
補(bǔ)充知識(shí):java字符串的操作:去除字符、替換字符、多個(gè)字符分隔字符串
看代碼吧~
// 去除空格,換行,制表符
public String replaceBlank(String str) {
String dest = "";
if (str!=null) {
Pattern p = Pattern.compile("\\s*|\t|\r|\n"); // 去除多個(gè)空格,去除制表符,回車,換行
Matcher m = p.matcher(str);
dest = m.replaceAll("");
}
return dest;
}
String s = "你要去除的字符串";
1.去除空格:s = s.replace('\\s','');
2.去除回車:s = s.replace('\n','');
字符串去除多個(gè)字符串(括號(hào)):
String cal = tableStrings.get(i).replaceAll("\\(|\\)", ""); // 去除左右括號(hào)
字符串分隔多個(gè)字符:
String[] temp = cal.split("\\+|\\-|\\*|\\/"); // 按照加減乘除字符分隔字符串
以上這篇Java 實(shí)現(xiàn)repalceAll只替換第二個(gè)匹配到的字符串就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java的url方式、本地方式獲取json文件內(nèi)容
這篇文章給大家分享了java的url方式、本地方式獲取json文件內(nèi)容的實(shí)例代碼,有需要的朋友參考學(xué)習(xí)下。2018-07-07
Mybatis-Plus實(shí)現(xiàn)自定義SQL具體方法
Mybatis-Plus是Mybatis的一個(gè)增強(qiáng)工具,它可以優(yōu)化我們的開發(fā)效率,這篇文章主要介紹了Mybatis-Plus實(shí)現(xiàn)自定義SQL,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08
spring-security關(guān)于hasRole的坑及解決
這篇文章主要介紹了spring-security關(guān)于hasRole的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Java?List集合取交集的五種常見(jiàn)方式總結(jié)
在Java中取兩個(gè)List集合的交集可以通過(guò)多種方式實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Java?List集合取交集的五種常見(jiàn)方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
SpringCloud解決Feign異步回調(diào)問(wèn)題(SpringBoot+Async+Future實(shí)現(xiàn))
這篇文章主要介紹了SpringCloud解決Feign異步回調(diào)問(wèn)題(SpringBoot+Async+Future實(shí)現(xiàn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

