首先,讓我們來了解一下究竟什麼是vbscript的「正規表示式」物件,我們先來看一段程式:
function checkexp(patrn, strng)
dim regex, match 』 建立變數。
set regex = new regexp 』 建立正規表示式。
regex.pattern = patrn 』 設定模式。
regex.ignorecase = true 』 設定是否區分字元大小寫。
regex.global = true 』 設定全域性可用性。
matches = regex.test(strng) 』 執行搜尋。
checkexp = matches
end function
在這段程式程式中,我們看到可以使用「new regexp」來得到乙個正規表示式物件,然後對這個物件進行正則匹配模板的賦值,也就是告訴正規表示式物件,你想要匹配乙個什麼樣子的模板,然後使用方 法test來檢測待處理的資料究竟和我們給出的模版是否相匹配,如果不匹配,那就表明待處理的資料不是合法的資料,從而也就實現了資料合法性的校驗,我們 可以看出,使用乙個設計合理的匹配模板,我們可以輕鬆的校驗一批格式類似的資料資訊。
當然,vbscript5.0中的「正規表示式」物件還有很多的其他的方法和屬性,比如方法replace(),利用他我 們就可以很快的實現現在網上很時髦的ubb風格的論壇以及bbs,這不在我們討論範圍之內,以後再加以論述,我們現在就看看在資料校驗方面正規表示式物件 常用的方法和屬性:
常用方法: execute 方法
描述:對指定的字串執行正規表示式搜尋。
語法:object.execute(string) execute 方法的語法包括以下幾個部分:
object:必需的。總是乙個 regexp 物件的名稱。
string:必需的。要在其上執行正規表示式的文字字串。
說明:正規表示式搜尋的設計模式是通過 regexp 物件的 pattern 來設定的。execute 方法返回乙個 matches 集合,其中包含了在 string 中找到的每乙個匹配的 match 物件。如果未找到匹配,execute 將返回空的 matches 集合。
test方法
描述:對指定的字串執行乙個正規表示式搜尋,並返回乙個 boolean 值指示是否找到匹配的模式。
語法:object.test(string)
test 方法的語法包括以下幾個部分:
object:必需的。總是乙個 regexp 物件的名稱。
string:必需的。要執行正規表示式搜尋的文字字串。
說明:正規表示式搜尋的實際模式是通過regexp物件的pattern屬性來設定的。regexp.global屬性對test方法沒有影響。如果找到了匹配的模式,test方法返回true;否則返回false。
常用屬性: global屬性
描述:設定或返回乙個 boolean 值,該值指明在整個搜尋字串時模式是全部匹配還是只匹配第乙個。
語法:object.global [= true | false ]
object 引數總是 regexp 物件。如果搜尋應用於整個字串,global 屬性的值為 true,否則其值為 false。預設的設定為 true。
ignorecase屬性
描述:設定或返回乙個boolean值,指明模式搜尋是否區分大小寫。
語法:object.ignorecase [= true | false ]
object 引數總是乙個 regexp 物件。如果搜尋是區分大小寫的,則 ignorecase 屬性為 false;否則為 true。預設值為 true。
pattern屬性
描述:設定或返回被搜尋的正規表示式模式。 這是乙個最重要的屬性,我們主要是設定這個屬性來實現資料校驗的。
語法:object.pattern [= "searchstring"]
pattern 屬性的語法包含以下幾個部分:
object:必需的。總是乙個 regexp 物件變數。
searchstring:可選的。被搜尋的正則字串表示式。它可能包含設定部分**中的各種正規表示式字元。
設定:在書寫正規表示式的模式時使用了特殊的字元和序列。下表描述了可以使用的字元和序列,並給出了例項。
字元描述: /:將下乙個字元標記為特殊字元或字面值。例如"n"與字元"n"匹配。"/n"與換行符匹配。序列"//"與"/"匹配,"/("與"("匹配。
^ :匹配輸入的開始位置。
$ :匹配輸入的結尾。
* :匹配前乙個字元零次或幾次。例如,"zo*"可以匹配"z"、"zoo"。
+ :匹配前乙個字元一次或多次。例如,"zo+"可以匹配"zoo",但不匹配"z"。
? :匹配前乙個字元零次或一次。例如,"a?ve?"可以匹配"never"中的"ve"。
.:匹配換行符以外的任何字元。
(pattern) 與模式匹配並記住匹配。匹配的子字串可以從作為結果的 matches 集合中使用 item [0]...[n]取得。如果要匹配括號字元(和 ),可使用"/(" 或 "/)"。
x|y:匹配 x 或 y。例如 "z|food" 可匹配 "z" 或 "food"。"(z|f)ood" 匹配 "zoo" 或 "food"。
:n 為非負的整數。匹配恰好n次。例如,"o" 不能與 "bob 中的 "o" 匹配,但是可以與"foooood"中的前兩個o匹配。
:n 為非負的整數。匹配至少n次。例如,"o"不匹配"bob"中的"o",但是匹配"foooood"中所有的o。"o"等價於"o+"。"o"等價於"o*"。
:m 和 n 為非負的整數。匹配至少 n 次,至多 m 次。例如,"o" 匹配 "fooooood"中前三個o。"o"等價於"o?"。
[xyz] :乙個字符集。與括號中字元的其中之一匹配。例如,"[abc]" 匹配"plain"中的"a"。
[^xyz] :乙個否定的字符集。匹配不在此括號中的任何字元。例如,"[^abc]" 可以匹配"plain"中的"p".
[a-z] :表示某個範圍內的字元。與指定區間內的任何字元匹配。例如,"[a-z]"匹配"a"與"z"之間的任何乙個小寫字母字元。
[^m-z] :否定的字元區間。與不在指定區間內的字元匹配。例如,"[m-z]"與不在"m"到"z"之間的任何字元匹配。
/b :與單詞的邊界匹配,即單詞與空格之間的位置。例如,"er/b" 與"never"中的"er"匹配,但是不匹配"verb"中的"er"。
/b :與非單詞邊界匹配。"ea*r/b"與"never early"中的"ear"匹配。
/d :與乙個數字字元匹配。等價於[0-9]。
/d :與非數字的字元匹配。等價於[^0-9]。
/f :與分頁符匹配。
/n :與換行符字元匹配。
/r :與回車字元匹配。
/s :與任何白字元匹配,包括空格、製表符、分頁符等。等價於"[ /f/n/r/t/v]"。
/s :與任何非空白的字元匹配。等價於"[^ /f/n/r/t/v]"。
/t :與製表符匹配。
/v :與垂直製表符匹配。
/w :與任何單詞字元匹配,包括下劃線。等價於"[a-za-z0-9_]"。
/w :與任何非單詞字元匹配。等價於"[^a-za-z0-9_]"。
/num :匹配 num個,其中 num 為乙個正整數。引用回到記住的匹配。例如,"(.)/1"匹配兩個連續的相同的字元。
/n:匹配 n,其中n 是乙個八進位製換碼值。八進位製換碼值必須是 1, 2 或 3 個數字長。
例如,"/11" 和 "/011" 都與乙個製表符匹配。"/0011"等價於"/001" 與 "1"。八進位製換碼值不得超過 256。否則,只有前兩個字元被視為表示式的一部分。允許在正規表示式中使用ascii碼。
/xn:匹配n,其中n是乙個十六進製制的換碼值。十六進製製換碼值必須恰好為兩個數字長。例如,"/x41"匹配"a"。"/x041"等價於"/x04" 和 "1"。允許在正規表示式中使用 ascii 碼。
好了,常用的方法和屬性就是這些了,上面的語法介紹的已經很詳細了,我們就沒有必要在羅嗦了,接下來我們來看看在具體的例子裡面如何使用這些方法和屬性來 校驗資料的合法性,我們還是舉個例子吧,比如,我們想要對使用者輸入的電子郵件進行校驗,那麼,什麼樣的資料才算是乙個合法的電子郵件呢?我可以這樣輸 入:[email protected],當然我也會這樣輸入:***@yyy.com.cn,但是這樣的輸入就是非法的:***@@com.cn或者 @***.com.cn,等等,所以我們得出乙個合法的電子郵件位址至少應當滿足以下幾個條件:
1. 必須包含乙個並且只有乙個符號「@」
2. 必須包含至少乙個至多三個符號「.」
3. 第乙個字元不得是「@」或者「.」
4. 不允許出現「@.」或者.@
5. 結尾不得是字元「@」或者「.」
所以根據以上的原則和上面表中的語法,我們很容易的就可以得到需要的模板如下:"(/w)+[@](/w)+[.](/w)+"
正規表示式入門教程
元字元原義字元 非列印字元 字元類預定義類 邊界量詞 貪婪與懶惰 非貪婪 3.練習一下 先來看看幾個常用的案例。手機號碼正規表示式 1 345789 0 9 解釋 最外的 是正則的表示式的標誌,表示以什麼開頭,表示哪些可選項,表示出現幾次,以什麼結尾。手機號案例 以1開頭,第2位為 3,4,5,7,...
正規表示式入門教程
正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索 替換那些符合某個模式的文字。在編寫處理字...
正規表示式入門教程
表1.常用的元字元 匹配除換行符以外的任意字元 w匹配字母或數字或下劃線或漢字 s匹配任意的空白符 d匹配數字 b匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 表2.常用的限定符 語法說明 重複零次或更多次 重複一次或更多次 重複零次或一次 重複n次 重複n次或更多次 重複n到m次 3 正規...