iT邦幫忙

DAY 28
1

給學弟的ASP.NET網頁學習經驗系列 第 28

ASP.NET學習經驗#28----檢查字串的內容??Regular Expression初學

Regular Expression 是什麼?

中文通常被稱為『正規表示式』

簡稱: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] 進階群組建構


上一篇
ASP.NET學習經驗#27----瞭解ADO.NET,常用的DataSet與DataReader
下一篇
ASP.NET學習經驗#29----如何做出多國語言顯示?Multi-language支援(學習使用Resource檔)
系列文
給學弟的ASP.NET網頁學習經驗30

尚未有邦友留言

立即登入留言