Java - Regular Expression 介紹及例子解釋(1)
閱讀時間: 10分鐘
Regular Expression 簡稱是 RegEx,中文叫規則運算式。
當我們在做資料篩選的時候,而又可能有很多條件限制或要求時,
可以使用正規表示式(Regular Expression)將我們想要選擇的資料根據篩選的要求正確輸出。
換個角度也可以說用來檢查字串是不是有符合正確的條件限制或要求。
用於Regular Expression的基本字元
\
解釋說明:
避開特殊字元
簡單例子:
/A\*/
可用於比對 “A*”,其中 * 是可以作為一個特殊字元(*可以是一般字元),為避開其特殊意義,所以必須加上 “\”
^
解釋說明:
比對輸入列的字元開始位置
簡單例子:
/^A/
可比對 “Abcd” 中的 “A”,但不可比對 “aAb”
$
解釋說明:
比對輸入列的字元尾部位置
簡單例子:
/A$/
可比對 “bcdA” 中的 “A”,但不可比對 “aAb”
解釋說明:
比對星號前一個字元零次或更多次
簡單例子:
/bo*/
可比對 “Good boook” 中的 “booo”,亦可比對 “Good bk” 中的 “b”
解釋說明:
比對加號前的一個字元一次或更多次,等效於 {1,}
簡單例子:
/a+/
可比對 “caaandy” 中的 “aaa”,但不可比對 “cndy”
?
解釋說明:
比對前一個字元零次或一次
簡單例子:
/e?l/
可比對 “angel” 中的 “el”,也可以比對 “angle” 中的 “l”
.
解釋說明:
比對任何一個字元(但換行符號不算)
簡單例子:
/.n/
可比對 “nay, an apple is on the tree” 中的 “an” 和 “on”,但不可比對 “nay”
(x)
解釋說明:
比對 x 並將符合的部分存入一個變數
簡單例子:
/(a*) and (b*)/
可比對 “aaa and bb” 中的 “aaa” 和 “bb”,並將這兩個比對得到的字串設定至變數 RegExp.$1 和 RegExp.$2。
xy
解釋說明:
比對 x 或 y
簡單例子:
/a*b*/g
可比對 “aaa and bb” 中的 “aaa” 和 “bb”
{n}
解釋說明:
比對前一個字元 n 次,n 為一個正整數
簡單例子:
/a{3}/
可比對 “lllaaalaa” 其中的 “aaa”,但不可比對 “aa”
{n,}
解釋說明:
比對前一個字元至少 n 次,n 為一個正整數
簡單例子:
/a{3,}/
可比對 “aa aaa aaaa” 其中的 “aaa” 及 “aaaa”,但不可比對 “aa”
{n,m}
解釋說明:
比對前一個字元至少 n 次,至多 m 次,m、n 均為正整數
簡單例子:
/a{3,4}/
可比對 “aa aaa aaaa aaaaa” 其中的 “aaa” 及 “aaaa”,但不可比對 “aa” 及 “aaaaa”
[xyz]
解釋說明:
比對中括弧內的任一個字元
簡單例子:
/[ecm]/
可比對 “welcome” 中的 “e” 或 “c” 或 “m”
[^xyz]
解釋說明:
比對不在中括弧內出現的任一個字元
簡單例子:
/[^ecm]/
可比對 “welcome” 中的 “w”、”l”、”o”,可見出其與 [xyz] 功能相反。(同時請注意 /^/ 與 [^] 之間功能的不同。)
[\b]
解釋說明:
比對退位字元(Backspace character)
簡單例子:
可以比對一個 backspace ,也請注意 [\b] 與 \b 之間的差別