正則表達式的語法規則和標記
現在我們正式進入則表達式的學習,我會根據實例結合講解正則表達式的用法,看完后你就會覺得寫UBB代碼如此簡單了,只要你一步一步的跟著我學 看完本文章后你就成為UBB高手了。激動人心的就是你能寫出自已的UBB標簽來了,再也不用到別人那里去拷貝現成的代碼和模板了。 還好VBScritp5.0給我們提供了"正則表達式"對象,只要你的服務器安裝了IE5.x,就可以運行了.
字符描述:
^符號匹配字符串的開頭。例如:
^abc 與"abc xyz"匹配,而不與"xyz abc"匹配
$符號匹配字符串的結尾。例如:
abc$ 與"xyz abc"匹配,而不與"abc xyz"匹配。
注意:如果同時使用^符號和$符號,將進行精確匹配。例如:
^abc$ 只與"abc"匹配
*符號匹配0個或多個前面的字符。例如:
ab* 可以匹配"ab"、"abb"、"abbb"等
+符號匹配至少一個前面的字符。例如:
ab+ 可以匹配"abb"、"abbb"等,但不匹配"ab"。
?符號匹配0個或1個前面的字符。例如:
ab?c? 可以且只能匹配"abc"、"abbc"、"abcc"和"abbcc"
.符號匹配除換行符以外的任何字符。例如:
(.)+ 匹配除換行符以外的所有字符串
x|y匹配"x"或"y"。例如:
abc|xyz 可匹配 "abc"或 "xyz",而"ab(c|x)yz"匹配 "abcyz"和"abxyz"
{n}匹配恰好n次(n為非負整數)前面的字符。例如:
a{2} 可以匹配"aa",但不匹配"a"
{n,}匹配至少n次(n為非負整數)前面的字符。例如:
a{3,} 匹配"aaa"、"aaaa"等,但不匹配"a"和"aa"。
注意:a{1,}等價于a+
a{0,}等價于a*
{m,n}匹配至少m個,至多n個前面的字符。例如:
a{1,3} 只匹配"a"、"aa"和"aaa"。
注意:a{0,1}等價于a?
[xyz]表示一個字符集,匹配括號中字符的其中之一。例如:
[abc] 匹配"a"、"b"和"c"
[^xyz]表示一個否定的字符集。匹配不在此括號中的任何字符。例如:
[^abc] 可以匹配除"a"、"b"和"c"之外的任何字符
[a-z]表示某個范圍內的字符,匹配指定區間內的任何字符。例如:
[a-z] 匹配從"a"到"z"之間的任何一個小寫字母字符
[^m-n]表示某個范圍之外的字符,匹配不在指定范圍內的字符。例如:
[m-n] 匹配除從"m"到"n"之間的任何字符
\符號是轉義操作符。例如:
\n 換行符
\f 分頁符
\r 回車
\t 制表符
\v 垂直制表符
\\ 匹配"\"
\/ 匹配"/"
\s 任何白字符,包括空格、制表符、分頁符等。等價于"[ \f\n\r\t\v]"
\S 任何非空白的字符。等價于"^\f\n\r\t\v]"
\w 任何單詞字符,包括字母和下劃線。等價于"[A-Za-z0-9_]"
\W 任何非單詞字符。等價于"[^A-Za-z0-9_]"
\b匹配單詞的結尾。例如:
ve\b 匹配單詞"love"等,但不匹配"very"、"even"等
\B匹配單詞的開頭。例如:
ve\B 匹配單詞"very"等,但不匹配"love"等
\d匹配一個數字字符,等價于[0-9]。例如:
abc\dxyz 匹配"abc2xyz"、"abc4xyz"等, 但不匹配"abcaxyz"、"abc-xyz"等
\D匹配一個非數字字符,等價于[^0-9]。例如:
abc\Dxyz 匹配"abcaxyz"、"abc-xyz"等, 但不匹配"abc2xyz"、"abc4xyz"等
\NUM匹配NUM個(其中NUM為一個正整數),引用回到記住的匹配。例如:
(.)\1 匹配兩個連續相同的字符。
\oNUM匹配n(其中n為一個小于256的八進制換碼值)。例如:
\o011 匹配制表符
\xNUM匹配NUM(其中NUM為一個小于256的十六進制換碼值)。例如:
\x41 匹配字符"A"
|