定義java
正則表達式是一種特殊的字符串模式,用於匹配一組字符串,就比如用模具作產品,而正則就是這個模具,定義一種規則去匹配符合規則的字符。正則表達式
元字符blog
"^" :^會匹配行或者字符串的起始位置,有時還會匹配整個文檔的起始位置。 內存
"$" :$會匹配行或字符串的結尾 文檔
"\b" :不會消耗任何字符只匹配一個位置,經常使用於匹配單詞邊界 如 我想從字符串中"This is Regex"匹配單獨的單詞 "is" 正則就要寫成 "\bis\b" 字符串
\b 不會匹配is 兩邊的字符,但它會識別is 兩邊是否爲單詞的邊界 產品
"\d": 匹配數字,class
例如要匹配一個固定格式的電話號碼以0開頭前4位後7位,如0737-5686123 正則:^0\d\d\d-\d\d\d\d\d\d\d$ 這裏只是爲了介紹"\d"字符,實際上有更好的寫法會在 下面介紹。im
"\w":匹配字母,數字,下劃線.d3
例如我要匹配"a2345BCD__TTz" 正則:"\w+" 這裏的"+"字符爲一個量詞指重複的次數,稍後會詳細介紹。
"\s":匹配空格
例如字符 "a b c" 正則:"\w\s\w\s\w" 一個字符後跟一個空格,若有字符間有多個空格直接把"\s" 寫成 "\s+" 讓空格重複
".":匹配除了換行符之外的任何字符
這個算是"\w"的增強版了"\w"不能匹配 空格 若是把字符串加上空格用"\w"就受限了,看下用 "."是如何匹配字符"a23 4 5 B C D__TTz" 正則:".+"
"[abc]": 字符組 匹配包含括號內元素的字符
這個比較簡單了只匹配括號內存在的字符,還能夠寫成[a-z]匹配a至z的因此字母就等於能夠用來控制只能輸入英文了,
寫法很簡單改爲大寫就好了,意思與原來的相反,這裏就不舉例子了
轉義字符
"\W" 匹配任意不是字母,數字,下劃線 的字符
"\S" 匹配任意不是空白符的字符
"\D" 匹配任意非數字的字符
"\B" 匹配不是單詞開頭或結束的位置
"[^abc]" 匹配除了abc之外的任意字符
// 1: 要求必須是5-15位數字 // 2: 0不能開頭 public static void main (String [] args){ String qq = "604154942"; String regex = "[1-9][0-9]{4,14}"; boolean flag2 = qq.matches(regex); }