2023年6月2日
正規表示式就是乙個匹配模式。
sql注入:利用sql的一些語法規則來達到修改資料庫的目的。
正規表示式:是通過ecmascript的regexp來實現的。
var re = new regexp(匹配模式,命令);
或者:var re = /匹配模式/命令;
這裡的命令是正規表示式匹配的額外指令。
常用的命令:
g:代表全域性匹配,也就是global
i:不區分大小寫,也就是ignore
multiformity:多行匹配的命令
例項:var str = "a bat cat"; var reg=/at/gi; str.replace(reg,'tt');
正規表示式的兩個方法:exec(字串):返回的只有乙個元素的陣列。test:判斷是否包含匹配模式。
string裡支援正規表示式的方法:
match(正規表示式);返回多個元素的陣列。如果匹配不成功就返回乙個null。
search(正規表示式);查詢乙個字串,返回乙個數字。如果不加g命令,找到了要找的字串,就不往下找下了。
replace(正規表示式,要替換的字串);
split();
匹配模式的兩種模式:
簡單模式:乙個正規表示式有很多組成組分,這些組成模式有匹配模式和命令模式。由指定字元,元字元,字元類和量值等等組成的簡單模式。
元字元:在正規表示式所占用的字元。如:(,[,,],)
預定義字串:如:\t , \r ,\f ,\n ,\a ,\e ,\b ,\v等
\t: 空格
\n: 換行
\r: 曉不得
預定義類:如:.代表[^\n\r],\d代表[0-9],\d代表[^0-9],\w代表[a-z 0-9 a-z],\w代表[^a-z 0-9 a-z_]
選擇類:是用在分組裡面的。是用 | 來區別的。
244427626 1258931349 133349133
字元類:包含在中括號裡的字元,告訴正規表示式匹配其中乙個字串。字串包含中括號中字元[abcd]
反字元類:如不包含a到z的字串:字串不包含中括號中字元[^abcd]
範圍字元類:如包含a到z的字串:[a-z],如不包含a到z的字串:[^a-z],
表示a到z和0到9[a-z0-9],表示a到z或0到9[a-z 0-9]
量值:如? 代表0次或一次。* 代表0次或多次。+ 代表1次或多次。
代表指定要出現n次。代表出現n次以上。代表出現n次到m次。
硬性量值:指定了數目的多少
軟性量值:沒有指定數目的多少
按懶惰情況來分:
貪婪的:它一直往下匹配,它首先讀第乙個字元進行匹配,如果匹配不成功,則讀下乙個字元,並把前面不匹配的字元刪除掉。如果匹配,則把相匹配的字串擷取出來放進陣列中。如果字串長度不為0,則繼續往下讀取。我們到目前為止用的都是貪婪的。
惰性的:首先看字串中的第乙個字元是否匹配。如果這個字元不匹配的話,那麼繼續讀取下乙個字元,組成兩個字元,一直這樣下去。如果匹配成功的話,那麼就把相匹配的字串擷取出來放進陣列中,再從新開始讀取。
只以出現最少次數匹配。
區分貪婪的和惰性的就是看量值後面是否加了乙個?,如果沒有加就是貪婪的,如果加了就是惰性的。
複雜模式:
它就是由分組,反向引用,前瞻和其他的一些正規表示式功能組成。
分組:是通過一對小括號包含一系列字元組成。如:var ref = /(dog)*/gi; 一般是用在當要查詢乙個字串出現多少次數。
邊界:^代表字串的頭邊界,$代表字串的尾邊界。如:var ref =/^\w*$/g;
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...