正規表示式

2022-07-13 18:24:11 字數 2381 閱讀 7795

一、常見的符號的介紹

1.1 預定義字元類

符號 說明

. 任何字元(與行結束符可能匹配也可能不匹配)

\d 數字:[0-9]

\d 非數字: [^0-9]

\s 空白字元:[ \t\n\x0b\f\r]

\s 非空白字元:[^\s]

\w 單詞字元:[a-za-z_0-9]

\w 非單詞字元:[^\w]

\ 轉義字元,比如"\\"匹配"\" ,"\ 匹配確定的 n 次。例如,「e」不能匹配「bed」中的「d」,但是能匹配「seed」中的兩個「e」。

至少匹配n次。例如,「e」不能匹配「bed」中的「e」,但能匹配「seeeeeeeed」中的所有「e」。

最少匹配 n 次且最多匹配 m 次。「e」將匹配「seeeeeeeed」中的前三個「e」。

1.3 邊界匹配符號

符號 說明

^ 行的開頭

$ 行的結尾

\b 單詞邊界

\b 非單詞邊界

\a 輸入的開頭

\g 上乙個匹配的結尾

\z 輸入的結尾,僅用於最後的結束符(如果有的話)

\z 輸入的結尾

1.3 其他常見符號

的使用--或 說明 匹配括號中的任何乙個字元

[abc] a、b 或 c(簡單類)

[^abc] 任何字元,除了 a、b 或 c(否定)

[a-za-z] a 到 z 或 a 到 z,兩頭的字母包括在內(範圍)

[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](並集)

[a-z&&[def]] d、e 或 f(交集)

[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](減去)

[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](減去)

二、常見的操作

2.1 匹配

string matches()方法。用規則匹配整個字串,只要有一處不符合規則,就匹配結束,返回false。

public class regexmatchesdemo01";

boolean flag = qq.matches(regex);

if(flag)

system.out.println(qq+":合法");

else

system.out.println(qq+":不合法");

}}//12345664:合法

2.2 切割

string split()方法; 根據給定正規表示式的匹配拆分此字串。返回乙個陣列。

舉例:

public static void splitdemo()

}

組group舉例:

2.3 替換

string replaceall(regex,str)方法; 使用給定的 replacement 替換此字串所有匹配給定的正規表示式的子字串。

ps:如果regex中有定義組,可以在第二引數中通過$符號獲取正規表示式中的已有的組。

舉例:

public static void splitdemo()

} // er,ty,ui,o

public static void replacealldemo()

","#");

system.out.println(str);

}// wer#ty#uio#f

組group舉例:

public static void replacealldemo()

// erktyquizo

2.4獲取

----將字串中的符合規則的子串取出。

舉例:

public static void getdemo()

\\b";//匹配只有三個字母的單詞

//將規則封裝成物件。

pattern p = pattern.compile(reg);

//讓正則物件和要作用的字串相關聯。獲取匹配器物件。

matcher m = p.matcher(str);

其實string類中的matches方法。用的就是pattern和matcher物件來完成的。

//只不過被string的方法封裝後,用起來較為簡單。但是功能卻單一。

// boolean b = m.find();//將規則作用到字串上,並進行符合規則的子串查詢。

// system.out.println(b);

// system.out.println(m.group());//用於獲取匹配後結果。

while(m.find())

}

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

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

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