欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java正則表達(dá)式的替換和分組功能

 更新時(shí)間:2020年09月02日 10:35:40   作者:Anthony_tester  
這篇文章主要給大家介紹了關(guān)于Java正則表達(dá)式的替換和分組功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

這篇來學(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)增刪改查功能

    SpringBoot整合MybatisPlus實(shí)現(xiàn)增刪改查功能

    MybatisPlus是國產(chǎn)的第三方插件,?它封裝了許多常用的CURDapi,免去了我們寫mapper.xml的重復(fù)勞動(dòng)。本文將整合MybatisPlus實(shí)現(xiàn)增刪改查功能,感興趣的可以了解一下
    2022-05-05
  • Spring主配置文件(applicationContext.xml) 導(dǎo)入約束詳解

    Spring主配置文件(applicationContext.xml) 導(dǎo)入約束詳解

    在本篇文章里我們給各位整理的是關(guān)于Spring主配置文件(applicationContext.xml) 導(dǎo)入約束的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要參考下。
    2019-08-08
  • Mybatis一對多和多對一處理的深入講解

    Mybatis一對多和多對一處理的深入講解

    Mybatis可以通過關(guān)聯(lián)查詢實(shí)現(xiàn),關(guān)聯(lián)查詢是幾個(gè)表聯(lián)合查詢,只查詢一次,通過在resultMap里面的association,collection節(jié)點(diǎn)配置一對一,一對多的類就可以完成,這篇文章主要給大家介紹了關(guān)于Mybatis一對多和多對一處理的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • SpringBoot異常處理之異常顯示的頁面問題

    SpringBoot異常處理之異常顯示的頁面問題

    這篇文章主要介紹了SpringBoot異常處理異常顯示的頁面的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • Java中的延遲隊(duì)列DelayQueue源碼解析

    Java中的延遲隊(duì)列DelayQueue源碼解析

    這篇文章主要介紹了Java中的延遲隊(duì)列DelayQueue源碼解析,DelayQueue是一個(gè)支持并發(fā)的無界延遲隊(duì)列,隊(duì)列中的每個(gè)元素都有個(gè)預(yù)定時(shí)間,當(dāng)線程從隊(duì)列獲取元素時(shí),只有到期元素才會(huì)出隊(duì)列,沒有到期元素則阻塞等待,需要的朋友可以參考下
    2023-12-12
  • 使用maven-assembly-plugin如何打包多模塊項(xiàng)目

    使用maven-assembly-plugin如何打包多模塊項(xiàng)目

    這篇文章主要介紹了使用maven-assembly-plugin如何打包多模塊項(xiàng)目,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java中自定義LRU緩存詳解

    Java中自定義LRU緩存詳解

    這篇文章主要介紹了Java中自定義LRU緩存詳解,基于LRU算法的緩存系統(tǒng),可以在達(dá)到緩存容量上限時(shí),清理最近最少使用的數(shù)據(jù),為新的數(shù)據(jù)的插入騰出空間,需要的朋友可以參考下
    2023-09-09
  • SpringBoot入門系列之JPA mysql

    SpringBoot入門系列之JPA mysql

    這篇文章主要介紹了SpringBoot入門系列之JPA mysql的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • springboot配置多數(shù)據(jù)源并集成Druid和mybatis的操作

    springboot配置多數(shù)據(jù)源并集成Druid和mybatis的操作

    這篇文章主要介紹了springboot配置多數(shù)據(jù)源并集成Druid和mybatis的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 你知道Java的這些騷操作嗎?

    你知道Java的這些騷操作嗎?

    今天在看python相關(guān)的東西,看到各種騷操作,回頭想了下Java有沒有什么騷操作,整理下面幾種,一起看一下吧,需要的朋友可以參考下
    2021-05-05

最新評論