正規表示式

2021-09-19 21:25:03 字數 2177 閱讀 2252

正規表示式

需求:

校驗乙個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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...