第一步:show codejava
package com.test.generic; public class RegoxDemo2 { /** * 正則表達式對字符的常見操做。 * 1.匹配 * 實際上是String類中的metches方法 * 2.切割 * 其實就是String類中的split方法。 * 3.替換 * 4.獲取 */ public static void main(String[] args) { functionDemo_2(); } /** * 切割. */ public static void functionDemo_2(){ String str = "zhangsanttttxiaoqiangmmmmmmzhaoliu"; String [] names = str.split("(.)\\1+"); // 以 「 」(空格)爲切割標識符,+號表示空格出現一次或者屢次 for (String name : names){ System.out.println(name); } } }
控制檯輸出 : 正則表達式
zhangsan xiaoqiang zhaoliu
二: 效果如上所示,長字符串 函數
"zhangsanttttxiaoqiangmmmmmmzhaoliu"
中的 ttttt mmmmmm都被除去,真乃字符串切割的利器啊---spa
3、其實主要是這句代碼: code
String [] names = str.split("(.)\\1+");
. 表明匹配除換行符 \n以外的任何單字符。字符串
(.) 表明一個表達式,或者說一個組,至關於java裏面的一個函數。 \1表明後向引用(\\1表明),表示表達式中,從左往右數,第一個左括號對應的括號內的內容。 \\1 在第二個位置上出現,表示第二個位置上的字符和第一個字符同樣。 +號表明出現一次或屢次、 PS:可能我對Regular理解不到位,因此描述不詳細,還懇求各位指正。