天天看點

正規表達式操作符參考清單

  正規表達式很強大,不過比較古怪也有些複雜。一般而言要記住那些正規表達式操作符是很考驗記憶力的,是以收集總結了以下這些正規表達式操作符,希望對大家有所幫助。

  常用比對

 .(比對任何單個字元。例如正規表達式r.t比對這些字元串:rat、rut、r t,但是不比對root)

 $(比對行結束符。例如正規表達式weasel$ 能夠比對字元串"He's a weasel"的末尾,但是不能比對字元串"They are a bunch of weasels."。)

 ^(比對一行的開始。例如正規表達式^When in能夠比對字元串"When in the course of human events"的開始,但是不能比對"What and When in the"。)

 *(比對0或多個正好在它之前的那個字元。例如正規表達式.*意味着能夠比對任意數量的任何字元。)

 \(這是引用符,用來将這裡列出的這些元字元當作普通的字元來進行比對。例如正規表達式\$被用來比對美元符号,而不是行尾,類似的,正規表達式\.用來比對點字元,而不是任何字元的通配符)

 [ ] [c1-c2] [^c1-c2]( 比對括号中的任何一個字元。例如正規表達式r[aou]t比對rat、rot和rut,但是不比對ret。可以在括号中使用連字元-來指定字元的區間,例如正規表達式[0-9]可以比對任何數字字元;還可以制定多個區間,例如正規表達式[A-Za-z]可以比對任何大小寫字母。另一個重要的用法是“排除”,要想比對除了指定區間之外的字元——也就是所謂的補集——在左邊的括号和第一個字元之間使用^字元,例如正規表達式[^269A-Z] 将比對除了2、6、9和所有大寫字母之外的任何字元。)

 \< \>(比對詞(word)的開始(\<)和結束(\>)。例如正規表達式\ \( \)(将 \( 和 \) 之間的表達式定義為“組”(group),并且将比對這個表達式的字元儲存到一個臨時區域(一個正規表達式中最多可以儲存9個),它們可以用 到 的符号來引用。)

 |(将兩個比對條件進行邏輯“或”(Or)運算。例如正規表達式(him|her) 比對"it belongs to him"和"it belongs to her",但是不能比對"it belongs to them."。注意:這個元字元不是所有的軟體都支援的。)

 +(比對1或多個正好在它之前的那個字元。例如正規表達式9+比對9、99、999等。注意:這個元字元不是所有的軟體都支援的。)

 ?(比對0或1個正好在它之前的那個字元。注意:這個元字元不是所有的軟體都支援的。)

 \{i\}\{i,j\}(比對指定數目的字元,這些字元是在它之前的表達式定義的。例如正規表達式A[0-9]\{3\} 能夠比對字元"A"後面跟着正好3個數字字元的串,例如A123、A348等,但是不比對A1234。而正規表達式[0-9]\{4,6\} 比對連續的任意4個、5個或者6個數字字元。注意:這個元字元不是所有的軟體都支援的。)

  自定義比對

 比對中文字元的正規表達式: [\u4e00-\u9fa5]

 比對雙位元組字元(包括漢字在内):[^\x00-\xff] (一個雙位元組字元長度計2,ASCII字元計1)

 比對空白行的正規表達式:\n\s*\r

 比對手機号碼:^(1[358][0-9]{1})[0-9]{8}$

 比對HTML标記的正規表達式:<(\S*?)[^>]*>.*?|<.*? /> (也僅僅能比對部分)

 比對首尾空白字元的正規表達式:^\s*|\s*$

 比對Email位址的正規表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

 比對網址URL的正規表達式:[a-zA-z]+://[^\s]*

 比對帳号是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

 比對國内電話号碼:\d{3}-\d{8}|\d{4}-\d{7}

 比對騰訊QQ号:[1-9][0-9]{4,}

 比對中國郵政編碼:[1-9]\d{5}(?!\d)

 比對×××:\d{15}|\d{18}

 比對ip位址:\d+\.\d+\.\d+\.\d+

  比對特定數字:

 ^[1-9]\d*$  //比對正整數

 ^-[1-9]\d*$  //比對負整數

 ^-?[1-9]\d*$ //比對整數

 ^[1-9]\d*|0$ //比對非負整數(正整數 + 0)

 ^-[1-9]\d*|0$ //比對非正整數(負整數 + 0)

 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //比對正浮點數

 ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //比對負浮點數

 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //比對浮點數

 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //比對非負浮點數(正浮點數 + 0)

 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$//比對非正浮點數(負浮點數 + 0)

  比對特定字元串

 ^[A-Za-z]+$//比對由26個英文字母組成的字元串

 ^[A-Z]+$//比對由26個英文字母的大寫組成的字元串

 ^[a-z]+$//比對由26個英文字母的小寫組成的字元串

 ^[A-Za-z0-9]+$//比對由數字和26個英文字母組成的字元串

 ^\w+$//比對由數字、26個英文字母或者下劃線組成的字元串

  測試方法:

 String mailUrl = "^[1-9]\\d*$";

 System.out.println(Pattern.matches(mailUrl, "1213"));

 以上就是一般會用到的正規表達式操作符清單了。

原文連結

繼續閱讀