您好,登錄后才能下訂單哦!
1、字符描述:
\:將下一個字符標記為特殊字符或字面值。例如 "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 為非負的整數。匹配恰好n次。例如, "o{2} " 不能與 "Bob 中的 "o " 匹配,但是可以?quot;foooood "中的前兩個o匹配。
{n,} :n 為非負的整數。匹配至少n次。例如, "o{2,} "不匹配 "Bob "中的 "o ",但是匹配 "foooood "中所有的o。 "o{1,} "等價于 "o+ "。 "o{0,} "等價于 "o* "。
{n,m} :m 和 n 為非負的整數。匹配至少 n 次,至多 m 次。例如, "o{1,3} " 匹配 "fooooood "中前三個o。 "o{0,1} "等價于 "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 碼。
接下來看看在具體的例子里面如何使用這些方法和屬性來校驗數據的合法性,還是舉個例子吧,比如,想要對用戶輸入的電子郵件進行校驗,那么,什么樣的數據才算是一個合法的電子郵件呢?可以這樣輸入:
uestc95@263.net,當然也會這樣輸入:xxx@yyy.com.cn,但是這樣的輸入就是非法的:xxx@@com.cn或者@xxx.com.cn,等等,所以得出一個合法的電子郵件地址至少應當滿足以下幾個條件:
1. 必須包含一個并且只有一個符號“@”
2. 必須包含至少一個至多三個符號“.”
3. 第一個字符不得是“@”或者“.”
4. 不允許出現“@.”或者.@
5. 結尾不得是字符“@”或者“.”
所以根據以上的原則和上面表中的語法,很容易的就可以得到需要的模板如
下: "(\w)+[@]{1}(\w)+[.]{1,3}(\w)+ "
接下來仔細分析一下這個模板,首先“\w”表示郵件的開始字符只能是包含下劃線的單詞字符,這樣,滿足了第三個條件;“[@]{1}”表示在電子郵件中應當匹配并且只能匹配一次字符“@”,滿足了條件一;同樣的
“[.]{1,3}”表示在電子郵件中至少匹配1個至多匹配3個字符“.”,滿足了第二個條件;模板最后的“(\w)+”
表示結尾的字符只能是包含下劃線在內的單詞字符,滿足了條件五;模板中間的
“(\w)+”滿足了條件四。
然后,就直接調用剛才的那個函數CheckExp( "(\w)+[@]{1}(\w)+[.]{1}
(\w)+ ",待校驗的字符串)就好了,如果返回True就表示數據是合法的,否則就是不正確的,怎么樣,簡單吧。還可以寫出來校驗×××號碼的模板: "([0-9])
{15} ";校驗URL的模板: "^http://{1}((\w)+[.]){1,3} "等等;可以看到,這些模板提供了很好的可重利用的模塊,利用自己或者別人提供的各種模板,就可以方便快捷的進行數據的合法性校驗了,相信你一定會寫
出非常通用的模板的。
這樣,只要定制不同的模板,就可以實現對不同數據的合法性校驗了。所以,正則表達式對象中最重要的屬性就是:“Pattern”屬性,只要真正掌握了這個屬性,才可以自由的運用正則表達式對象來為數據校驗進行服
務。
你還可能感興趣:收錄常用的正則表達式
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。