正規表示式,又名正規表示法、常規表示法、規則運算式,它常用於比對字串,語法只要看懂後其實非常簡單,這篇文章就來紀錄一下正規表示式的一些語法規則,以便日後查詢用,順便也分享給各位。
正規表示式 線上驗證工具:
符號說明:
符號
|
說明
|
範例
|
成立條件
|
不成立條件
|
^
|
比對字串開始位置
| "^A" | "ABC" | "CBA" |
$
|
比對字串結束位置
| "A$" | "CBA" | "ABC" |
*
|
比對符號前的字元重複零次以上
| "A*" | "AAA" | |
+
|
比對符號前的字元重複一次以上
| "A+" | "AB" "AAB" | "B" |
?
|
比對符號前的字元重複零次或一次
| "^A?$" | "A" | "AA" |
.
|
比對除了"\n"以外的所有字元
| "." | "A" | "" |
|
|
比對符號兩邊的字元
| "A|B|C" | "A" "B" "C" | "D" |
{n}
|
比對{n}前的字元n次,n必為正整數。
| "^A{2}$" | "AA" | "A" "AAA" |
{n,}
|
比對{n,}前的字元至少n次,n必為正整數。
| "^A{2,}$" | "AA" "AAA" | "A" |
{n,m}
|
比對{n,m}前的字元至少n次但最多m次,n,m均為正整數。
| "^A{2,4}$" | "AAA" "AAAA" | "AAAAA" |
[xyz]
|
比對中括號內的任意字元。
| "^[XYZ]$" | "X" "Y" | "GG" "XX" |
[^xyz]
|
比對不再中括號內的任意字元。
| "^[^XYZ]$" | "A" | "Y" "GG" |
[a-z]
|
比對a到z的任意字元,另有[0-9]和[A-Z]等用法。
| "^[^0-9]$" | "A" | "5" |
特殊字元:
\b
|
比對單詞結尾,也就是空格。
| "cat\b" | "cat" | "cats" |
\B
|
比對非單詞結尾。
| "dog\B" | "dogs" | "dog" |
\d
|
比對一個數字字元,同[0-9]。
| "\d" | "123" | "ABC" |
\D
|
比對一個非數字字元,同[^0-9]。
| "\D" | "ABC" | "123" |
\f
|
比對換頁符號
| - | - | - |
\n
|
比對換行符號
| - | - | - |
\t
|
比對TAB
| - | - | - |
\r
|
比對Enter符號
| - | - | - |
\s
|
比對任何空白字元,包括換頁、換行、Enter符號等
| - | - | - |
\S
|
比對任何非空白字元
| - | - | - |
\w
|
比對字母大小寫、數字與底線,同[A-Za-z0-9_]
| "\w" | "A1c" | "/" |
\W
|
比對非字母大小寫、數字與底線,同[^A-Za-z0-9_]
| "\W" | "@" | "A1c" |
\xn
|
比對n的ASCII碼符號,n須為16進制
| "\x41" | "A" | "B" |
\num
|
參照比對前num個正規式。
| "^(\x41)(\1)$" | "AA" | "A" |
\un
|
比對Unicode字元,n為四個十六進制數字。
| "\u6211" | "我" | "他" |
學習正規表示式最快的方法就是把語法看熟,多練習,多看別人的正規式並理解。
程式語法:
JavcSirept
regex = new RegExp("09[0-9]{8}"); num = "0912345678"; if(num.test(regex)){ alert("OK"); }else{ alert("NO"); }其他程式:
#Java str.matches([A-Z]);資料來源: https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
https://atedev.wordpress.com/2007/11/23/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%A4%BA%E5%BC%8F-regular-expression/
沒有留言:
張貼留言