正規表示式

2021-07-15 07:04:15 字數 2012 閱讀 6432

注意:任何預定義字元沒有加上數量詞之前只能匹配乙個字元。

"12".matches("\\d\\d");//這裡匹配了兩個

注意:這裡只匹配乙個

匹配(matches)

匹配qq號 

string qq = "123456"; 

string reg = "[1-9][0-9]"; 

boolean b = qq.matches(req); 

匹配手機號碼

string reg = "1[35]\\d";
匹配郵箱

string reg = "[a-za-z1-9]\\w@[a-za-z0-9](\\.(com|cn|net))"
切割(split)

切割空格

str = "-1    99   4    23";

string arr = str.split(" +");

根據重疊詞切割(正規表示式內容復用:分組) 

\1:代表第一組內容,組號是從1開始

string str = "大家家家家家好好好啊";

替換(replaceall)

string reg = "1[34578]\\d"

str.replaceall(reg, "*****");

正則的外部引用分組內容,使用$符號

string str = "大大大家家家好好好";

str.replaceall("(.)\\1", "$1");

查詢使用的物件:1. pattern 物件 2. matcher物件

指定字串的正規表示式必須首先被編譯為此類的例項。然後,可將得到的正則物件匹配任意的字串用於建立matcher物件,執行匹配所涉及的所有狀態都駐留在匹配器中,所以多個匹配器可以共享同一模式。

典型的呼叫順序:

pattern p = pattern.compile("正則");

matcher m = p.matcher("aaaaab");

boolean b = m.matches();

匹配器常用的方法

find()//如果能查到符合規則的字串,則返回true,否則返回false

group()//獲取符合規則的子串

注意:使用group方法的時候一定要先呼叫find方法匹配器去查詢符合規則的字串,否則報錯

//找出三個字母的

string content = "da jia hao a "

;string reg = "\\b[a-za-z]\\b"

;pattern p = pattern.compile(reg);

matcher m = p.matcher(content);

m.find();

m.group();

上面用到了單詞邊界匹配器 :\b 單詞邊界匹配器只是代表了單詞的開始和結束部分,不匹配任何的字元 

「hello world」.matches(「hello\b world」); //true

正規表示式 正規表示式 總結

非負整數 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正規表示式 編寫正規表示式

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