正規表示式

2022-05-03 08:54:13 字數 2007 閱讀 1223

字元:

\\ 反斜線字元

\t 製表符 ('\u0009')

\n 新行(換行)符 ('\u000a')

\r 回車符 ('\u000d')

\f 換頁符 ('\u000c')

\a 報警 (bell) 符 ('\u0007')

\e 轉義符 ('\u001b')

\cx 對應於 x 的控制符

字元匹配:

[a-z] 所有小寫字母

[a-z] 所有大寫字母

[^abc] 除過所有小寫字母

[0-9] 所有數字

預定字元:

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

\d 數字:[0-9]

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

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

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

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

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

邊界匹配器

^ 行的開頭

$ 行的結尾

\b 單詞邊界 指的是所有非\w的都可以是邊界

\b 非單詞邊界

\a 輸入的開頭

\g 上乙個匹配的結尾

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

\z 輸入的結尾

greedy 數量詞

x? x,一次或一次也沒有

x* x,零次或多次

x+ x,一次或多次

x x,恰好 n 次

x x,至少 n 次

x x,至少 n 次,但是不超過 m 次

特殊構造(非捕獲)

(?:x) x,作為非捕獲組

(?idmsux-idmsux) nothing,但是將匹配標誌i d m s u x on - off

(?idmsux-idmsux:x) x,作為帶有給定標誌 i d m s u x on - off

的非捕獲組 (?=x) x,通過零寬度的正 lookahead

(?!x) x,通過零寬度的負 lookahead

(?<=x) x,通過零寬度的正 lookbehind

(?x) x,作為獨立的非捕獲組

在學習string的時候有replaceall(string regex,string replacement)方法和split(string regex)方法以及matches(string regex)都可以使用正則來進行使用。

現在我們使用pattern和matcher來進行正則的使用。

pattern和matcher概述:

pattern 模式器: 把正規表示式封裝進該類

matcher 匹配器

pattern的使用,把正規表示式封裝到模式器中

pattern a=pattern.compile(正則格式字串);

通過模式器中的matcher方法,又獲取到了乙個匹配,並把我們要匹配的資料傳進去

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

boolean b=m.matches();

matcher類的方法:

find() 判斷是否可以匹配上如果是返回true

group 找出匹配的字串。 注意一定要先使用find()方法先找到 才能用group()方法獲取出來

舉例:string b="adv faas abc adghjj";

pattern a=pattern.compile("a.c");

matcher c=a.matcher(b);

c.find();

system.out.println("c.find() = " + c.group());

public int groupcount() 返回此匹配器模式中的捕獲組數。根據慣例,零組表示整個模式。它不包括在此計數中。

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

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

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