Java正則表達(dá)式的替換和分組功能
前言
這篇來學(xué)習(xí)正則表達(dá)式的替換和分組功能,替換很好理解,分組有點(diǎn)復(fù)雜,特別是如何寫有效的分組的正則表達(dá)式。這篇通過幾個(gè)練習(xí),簡單了解下替換和分組功能。
1.替換功能
在String類有一個(gè)替換功能的方法,結(jié)合正則表達(dá)式去實(shí)現(xiàn)替換,下面是replaceAll()方法的舉例。
package regex; public class Demo1_Regex { public static void main(String[] args) { String str = "wo1shi2zhong3guo4ren"; //需要替換得到 wo shi zhong guo ren //寫一個(gè)正則,用空字符替換原字符串的任意數(shù)字 String regex = "\\d"; // \d表示任意數(shù)字 String target = str.replaceAll(regex, " "); System.out.println(target); } }
2.分組功能
先來看看什么是分組,在API 中Pattern這個(gè)類介紹是這樣描述的:
捕獲組可以通過從左到右計(jì)算其開括號來編號。例如,在表達(dá)式 ((A)(B(C))) 中,存在四個(gè)這樣的組:
1 |
((A)(B(C))) |
2 |
(A) |
3 |
(B(C)) |
4 |
(C) |
我們可以根據(jù)數(shù)多少個(gè)左括號來確定有多少個(gè)組。
下面來代碼舉例分組的正則表達(dá)式用法。
package regex; public class Demo1_Regex { public static void main(String[] args) { // 1疊詞:快快樂樂,高高高興興 // 判斷字符串是否是上面的疊詞規(guī)則 String regex = "(.)\\1(.)\\2"; // 這個(gè)正則表達(dá)式表示 快快樂樂這樣的疊詞 // 上面(.)表示一個(gè)分組,里面.表示任意字符,\\1表示組1又出現(xiàn)了一次,\\2表示組2又出現(xiàn)了一次 System.out.println("快快樂樂".matches(regex)); System.out.println("快樂快樂".matches(regex)); System.out.println("高高興興".matches(regex)); System.out.println("快樂樂樂".matches(regex)); } }
那么如何寫“快樂快樂”這樣疊詞的正則表達(dá)式呢。這么去分析一下,字符串“快樂快樂”,可以認(rèn)為“快樂”這個(gè)組又出現(xiàn)了一次,結(jié)合上面代碼提到的知識(shí),我們應(yīng)該這樣寫。
package regex; public class Demo1_Regex { public static void main(String[] args) { // 1疊詞:快樂快樂 String regex = "(..)\\1"; System.out.println("快快樂樂".matches(regex)); System.out.println("快樂快樂".matches(regex)); } }
練習(xí)1:按照疊詞進(jìn)行切割
請按照疊詞進(jìn)行切割“sdqqfgkkkhjppppdk”
package regex; public class Demo1_Split { public static void main(String[] args) { String st = "sdqqfgkkkhjppppkl"; String[] arr = st.split("(.)\\1+"); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
輸出
sd
fg
hj
kl
總結(jié)
到此這篇關(guān)于Java正則表達(dá)式的替換和分組功能的文章就介紹到這了,更多相關(guān)Java正則的替換和分組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot整合MybatisPlus實(shí)現(xiàn)增刪改查功能
MybatisPlus是國產(chǎn)的第三方插件,?它封裝了許多常用的CURDapi,免去了我們寫mapper.xml的重復(fù)勞動(dòng)。本文將整合MybatisPlus實(shí)現(xiàn)增刪改查功能,感興趣的可以了解一下2022-05-05Spring主配置文件(applicationContext.xml) 導(dǎo)入約束詳解
在本篇文章里我們給各位整理的是關(guān)于Spring主配置文件(applicationContext.xml) 導(dǎo)入約束的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要參考下。2019-08-08使用maven-assembly-plugin如何打包多模塊項(xiàng)目
這篇文章主要介紹了使用maven-assembly-plugin如何打包多模塊項(xiàng)目,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03springboot配置多數(shù)據(jù)源并集成Druid和mybatis的操作
這篇文章主要介紹了springboot配置多數(shù)據(jù)源并集成Druid和mybatis的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07