正規表示式
需求:校驗乙個qq號碼。
1. 首位不能為0;
2. 長度是4~10
3. 全部是數字組成
/*
正規表示式:
概念:用於操作字串的規則,在正規表示式中使用了一些特殊的符號代表了字串的規則
需求:校驗乙個qq號碼。
1. 首位不能為0;
2. 長度是4~10
3. 全部是數字組成
*/public class demo5 catch(exception e)
}else
}else
//正則
system.out.println(qq.matches("[1-9]\\d") ? "合法qq" : "非法qq");
}}
用於操作字串的規則,在正規表示式中使用了一些特殊的符號代表了字串的規則
預定義字元:.任何字元(與執行結束符可能匹配也可能不匹配)
\d 數字:[0-9]
\d 非數字:[^0-9]
\s 空白字元:[\t\n\x0b\f\r]
\s 非空白字元:[^\s]
\w 單詞字元:[a-za-z_0-9]
\w 非單詞字元:[^\w]
乙個預定義字元只能匹配乙個字元,除非預定義字串配合了數量詞使用
x?x, 一次或一次也沒有x*x, 零次或多次
x+x, 一次或多次
x x,恰好n次
x x 至少n次
x x 至少n次,但不能超過m次
system.out.println("?一次或一次也沒有:"+ ("12".matches("\\d?")));
system.out.println("* 零次或多次:"+ ("12".matches("\\d*")));
system.out.println("+ 至少一次:"+ ("12".matches("\\d+")));
system.out.println(" 恰好n次:"+ ("121".matches("\\d")));
system.out.println(" 至少出現n次:"+ ("121".matches("\\d")));
system.out.println(" 至少出現 n~ m次 :"+ ("1212111".matches("\\d")));
[abc] a,b,c(簡單類)[^abc] 任何字元,除a,b,c(否定)
[a-za-z] a-za-z,兩頭包括在內
system.out.println("abc".matches("[abc]+")); //與數量詞配合使用
如果正規表示式需要查詢內容需要使用以下兩個物件:pattern(正則物件)
matcher(匹配器物件)
指定為字串的正規表示式必須首先被編譯為此類pattern的例項。然後,pattern物件可以與任意字串行匹配 ,匹配字串之後就可以得到乙個 matcher 物件,所涉及與字串匹配的狀態都駐留在匹配器中 .
典型的呼叫順序是pattern p = pattern.compile("正則");
matcher m = p.matcher("aaaaab");
boolean b = m.matches();
匹配器常用的方法:find() 通知匹配器去查詢符合該正則的字串。如果存在符合規則的字串返回true,否則返回false.
group() 獲取符合規則的字串。
注意: 使用匹配器的方法時候,要先呼叫find方法才能呼叫group方法。 否則匹配器沒有去查詢合適的內容,報錯。
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...