Java SE ------- 正則表達式(小解)

1.正則表達式簡介
![在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
2.字符串的使用
2.1字符串支持 正則表達式的方式一:

  • boolean matches(String regex)
  • 根據給定的正則表達式驗證當前字符串是否滿足格式
  • 要求,滿足則返回true,否則返回false。
    郵箱的表達:
package day02;
/**
 * 字符串支持 正則表達式的方式一:
 * boolean matches(String regex)
 * 根據給定的正則表達式驗證當前字符串是否滿足格式
 * 要求,滿足則返回true,否則返回false。
 * 
 * @author Acer
 *
 */
public class StringDemo1 {

	public static void main(String[] args) {
		/*
		 * 電子郵箱的正則表達式
		 * [a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)+
		 * 
		 * \\表示爲"\\\\"
		 */
		String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z0-9_]+)+";
		System.out.println(regex);
		
		String mail = "[email protected]";
		boolean flag =mail.matches(regex);
		if(flag) {
			System.out.println("是郵箱");
		}
		else {
			System.out.println("不是郵箱");
		}
	}
}

手機號碼:

package day02;

import java.util.Scanner;

/**
 * 驗證手機號的正則表達式
 * @author Acer
 *
 */
public class Test01 {

	public static void main(String[] args) {
		/*
		 * 要求用戶輸入一個手機號,然後經過驗證
		 * 輸出是否是手機號碼
		 */
		System.out.println("請輸入一個手機號");
		Scanner scanner = new Scanner(System.in);
		String line = scanner.nextLine();
		/*
		 * (\+86|0086)?\s*1[0-9]{10})
		 */
		String regex = "1[0-9]{10}";
		if(line.matches(regex)) {
			System.out.println("是手機號");
		}else {
			System.out.println("不是手機號");
		}
		scanner.close();
	}
}

2.2 字符串支持 正則表達式的方式二:

  • String split(String regex)
  • 將當前的字符串按照正則表達式的部分進行拆分
  • 返回拆分後的的每段內容
package day02;
/**
 * 字符串支持 正則表達式的方式二:
 * String split(String regex)
 * 將當前的字符串按照正則表達式的部分進行拆分
 * 返回拆分後的的每段內容
 * @author Acer
 *
 */
public class StringDemo2 {

	public static void main(String[] args) {
		String str ="abc123def456ghi789jkl";
		/*
		 * 按照書字拆分,保留所有英文字母部分
		 */
		String regex ="[0-9]+";
		String[] array = str.split(regex);
		//打樁
		System.out.println("len:" + array.length);
		for(int i=0;i<array.length;i++) {
			System.out.println(array[i]);
		}
	}
}

圖片重命名:

package day02;
/**
 * 圖片重命名
 * 1.jpg
 * 
 * 16543135.jpg
 * 
 * @author Acer
 *
 */
public class Test02 {

	public static void main(String[] args) {
		String imgName = "1.jpg";
		String names[] = imgName.split("\\.");
		imgName = System.currentTimeMillis()
				+"."+names[1];
		System.out.println(imgName);
	}
}

2.3 字符串支持正則表達式方法三:

  • String replaceAll(String regex,String str);
  • 將當前字符串中滿足正則表達式的部份替換成給定的字符串
package day02;

/**
 * 字符串支持正則表達式方法三:
 * String replaceAll(String regex,String str);
 * 將當前字符串中滿足正則表達式的部份替換成給定的字符串
 * @author Acer
 *
 */
public class StringDemo3 {

	public static void main(String[] args) {
		String str = "abc123def456ghi789jkl";
		/*
		 * 將數字部分替換成"#NUMBER#"
		 */
		str = str.replaceAll("\\d", "#NUMBER#");
		System.out.println(str);
	}
}

圖片重命名:

package day02;

/**
 * 字符串支持正則表達式方法三:
 * String replaceAll(String regex,String str);
 * 將當前字符串中滿足正則表達式的部份替換成給定的字符串
 * @author Acer
 *
 */
public class StringDemo3 {

	public static void main(String[] args) {
		String str = "abc123def456ghi789jkl";
		/*
		 * 將數字部分替換成"#NUMBER#"
		 */
		str = str.replaceAll("\\d", "#NUMBER#");
		System.out.println(str);
	}
}

和諧用語:

package day02;
/**
 * 和諧用語
 * @author Acer
 *
 */
public class Test04 {

	public static void main(String[] args) {
		String regex = "(wqnmlgb|cnm|sb|2b|nc|tmd|cby|djb)";
		String message = "wqnmlgb!你這個djb!你咋麼這麼nc";
		message = message.replaceAll(regex, "**");
		System.out.println(message);
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章