2014/07/10

[Java] 正規表達式筆記


基本表達

abc – exactly this sequence of three letters
[abc] – any one of the letters a, b, or c
[^abc]– any character except one of the letters a, b, or c
[ab^c] – a,b,^ or c. (^擺在[後表否定,擺在中間表字元)
[a-z] – any one character from a to z
[a-zA-Z0-9] – any one letter or digit


The vertical bar,, is used to separate alternatives– Ex: the pattern abc|xyz will match either abc or xyz

元字符

.  一個點表示任意字符,除了換行符
\d 一個數字: [0-9]
\D 一個非數字: [^0-9]
\s 任意的空白符,包括空格,製表符(Tab),換行符, 中文全角空格等:[ \t\n\x0B\f\r]
\S 非空白符: [^\s]
\w 用於單詞的字符,例如字母或數字或下劃線或漢字等: [a-zA-Z_0-9]
\W 不是用於單詞的字符,與\w相反: [^\w]


表示數量

* 重複零次或者更多次
+ 重複一次或者更多次
? 重複零次或者一次
{n} 重複n次
{n,} 重複n次或者更多次
 {n,m} 重複n到m次

分組利用小括號 ()

範例:
IP 地址正規表達式:(\d{1,3}\.){3}\d{1,3}