中文通常被稱為『正規表示式』
簡稱:Regex 、RegExp
主要用途就是在判斷驗證輸入的內容是否符合規定的**樣式(Pattern)**
更可以直接搭配 ASP.NET上驗證控制項(Validation Control)的ValidationExpression
假設要檢查信箱格式:/^[a-zA-Z0-9._-]+\@[a-zA-Z0-9_-]+(\.[A-Za-z0-9]{2,4}){1,2}$/
亂碼讓人似懂非懂,今天學習簡單的運用至少能解讀、修改寫出基本Regex
還有很多深入的使用方式真是夠讓人暈頭轉向!!!!
先附上好用的測試網頁:http://rubular.com/
=================================================
兩邊的/:一般表示正規表示法的字串的開始與結束
^匹配輸入字串的開始位置
$匹配輸入字串的開始位置
.句號代表任何單個字元
^AAA: 開頭一定要有AAA;
BBB$: 結尾一定要有BBB;
[]中括號表示一個字元要符合括號內的其中一字元
^[ab]: 開頭必須是一個 a 或者 b;
[a-d]:代表a到d的字元;
^_[a-zA-Z0-9]$: 用底線當開頭,大小寫a-z或數字當結尾
(補充:括號內^代表否定,[^Z]代表不能有大寫Z)
運算符號:用來修飾擴充接在前面的規則
* 相當於{0,} 0到N個
+ 相當於{1,} 1到N個
? 相當於{0,1} 0到1個
^ab+$: a開頭最少要有一個b存在做結尾 "ab", "abbb"
^123[a-z]$:123開頭可以有小寫字母做結尾 "123", "123a","123aaaa"
{,}大括號用來修飾表示字元個數的限制
"AL{2}": A後面一定要2個L,"ALL"
"AL{2,}": A後面一定要2個L或以上,"ALL","ALLLLLLLL"
"AL{1,2}": A後面可以只能有1-2個L,"AL","ALL"
\特殊字元:有些代表特殊用途,有些是用來表示該特殊字元
\b 表示在字詞(完整單字,空格及特殊字元區別)的前/後邊界要哪些規則
\B 表示用非字詞區分的前後邊界規則
\d 表示數字,就是[0-9]
\. 表示.句號
(\.com)\b:代表要用.com在整個單字結尾
\bA:表示大寫A開頭
基本運用就是如此!其他可以參考維基:正規表示式
這樣就可以理解上面的信箱正規表示法:
^[a-zA-Z0-9._-]+\@[a-zA-Z0-9_-]+(\.[A-Za-z0-9]{2,4}){1,2}
@前可以有1到多個大小寫字母數字或者._-三個特殊符號
@後先接同上,再接1到2組用.和大小寫英文數字的2到4個字元
還有更多進階應用:[Regex] 進階群組建構