//正則表達式(regular expression)
/*
split
matches
replaceAll
*/
/**
* 是一種驗證規則,用來判斷字符串是否符合某種特定格式:
*
* 手機號/郵箱......
*/
/*
* 常見的正則的規則:
* [0-9]:用來匹配一個數字 簡寫方式:\d
* [a-z]:用來匹配一個小寫英文字母
* [A-Z]:用來匹配一個大寫英文字母
* [\u4e00-\u952f]用來匹配一個漢字
* [135]1或3或5
* [1ab]1或a或b
* [0-9a-zA-Z]匹配數字+大小寫英文
* [0-9a-zA-Z_] 單詞字符簡寫方式:\w
*
*
*
* 原始字符串.matches(正則)
* 返回boolean型,表示原始字符串與正則表達式是否匹配
*
* [^0-9] 用來匹配一個非數字 簡寫方式:\D
* [^a-z] 除了a-z 以外其他字符
* [^a-zA-Z0-9_]非單詞字符 簡寫方式:\W
* 空白字符 空格 \t 簡寫方式:\s
*
*
* 量詞:
* {m,n} m表示最少出現的次數,n表示說最多出現的次數
* {k} 恰好出現k次
* {m,} 最少出現m次
* {,n} 最多出現n次
* {0,} 出現0到無窮次 簡寫方式:*
* {1,} 出現1到無窮次 簡寫方式:+
* {0,1} 可以出現1次或不出現 簡寫方式:?
*
*
* 正則表達式:
* . :正則的小數點:表示匹配任意一個字符 真正的小數點:\.
*
* 驗證郵箱地址:[email protected]
* \w+@\w+\.\w+ //郵箱地址簡單寫法,後面改進
*/
public class TestRegular {
public static void main(String[] args) {
/*
* 原始字符串進行拆分:
* 原始字符串.split("正則")
*
* 根據正則表達式,將原始字符串按正則表達式進行拆分
*
* 例:"aaa.bbb.ccc.ddd".split(",");
* ==>返回字符串數組String[]{"aaa","bbb","ccc","ddd"}
*
*
*
*/
System.out.println("a".matches("[0-9]"));//false
System.out.println("1".matches("[0-9]"));//true
//正則表達式中的 \ 在java中需要寫爲 \\
System.out.println("1".matches("\\d"));//注意java轉義字符//\true
System.out.println("2".matches("[135]"));//false
System.out.println("吃".matches("[\u4e00-\u952f]"));//漢字不需要\\,\\u即可
System.out.println("嚴".matches("[\u4e00-\u4e0f]"));
//驗證單詞字符
System.out.println("@".matches("[\\w]"));//false
System.out.println("_".matches("[\\w]"));//true
//驗證取反
System.out.println("2".matches("[^0-9]"));
System.out.println("a".matches("[^0-9]"));
//空白字符
System.out.println(" ".matches("\\s"));
System.out.println("\t".matches("\\s"));
//{m,n}量詞
System.out.println("123456".matches("[0-9]{11,11}"));
System.out.println("123456".matches("[0-9]{11}"));
System.out.println("13812345678".matches("[0-9]{11,11}"));
//驗證郵箱
System.out.println("aaaa3333@cc".matches("\\w+@\\w+\\.\\w+"));
System.out.println("[email protected]".matches("\\w+@\\w+\\.\\w+"));
//abc 出現1到多次
//()叫做分組,把括號內的內容作爲一個整體來看待
String str1 = "abcabcabc";
str1.matches("abc+");
System.out.println(str1.matches("abc+"));//錯誤的正則,+隻影響到c
System.out.println(str1.matches("(abc)+"));//正確
//abc 或 def 出現1到多次,| 代表組內或者關係
System.out.println("defdef".matches("(abc|def)+"));
}
}
正則表達式(regular expression)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.