正則表達式基礎應用(切割split(regex))

1. 基礎字符串切割

要求:

按照空格將字符串切割

String a = "asd adsf    asdf        dfkajsd   yyy";
String reg1 = " +";  //1個或多個空格切割
String[] val = a.split(reg1);
for(String v : val){
System.out.println(v);
}


2. 按照特殊字符切割

要求:

按照點將字符串切割

特別說明:

在正則表達式中,. 爲特殊字符,所以必須轉義\. ,而在java字符串中\ 如果想正常表示也需要轉義,就成爲\\.

String b = "abc.sd.s.ldj.l44.sd";
String reg2 = "\\.";
String[] val1 = b.split(reg2);
for(String v : val1){
System.out.println(v);
}


3. 按照疊詞完成切割,爲了規則的結果可以被重用

要求:

按照有重複的字符串切割

特別說明:

正則表達式中()中的內容表示一個組,而組後面跟上\1 表示組的編號,此處表示重用組裏規則過濾出來的值,這個就叫疊詞

String c = "sdflddfkdfguuuflglglhlsgfaszzdk";
String reg3 = "(.)\\1+";  // 組裏爲任意字符,\\1爲重用組裏過濾出來的值,+表示多次利用組裏規則過濾出來的值
String [] val2 = c.split(reg3);
for(String v : val2){
System.out.println(v);
}



補充: 

如下面正則表達式: ((a(b))(c)) 

怎麼判斷它是幾個組呢?  

答: 只要數它有幾個左括號或者幾個右括號就行了,這裏是4個組; 

那麼怎麼知道組的編號了?

答:從左至右數左括號,第一個就是第一組,一次類推。


總結補充:這個正是正則表達式的一個缺點,就是符號定義越多,正則越長,閱讀行越差。說白了就是越牛的正則表達式越難看明白。


發佈了27 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章