之前在學習到正規表示式的時候,真的看了兩秒直接就跳過了,真的看到都怕,來自地球的我表示真的看不懂這個傳說中的火星文,但是,要想學習到更多的知識,我深知逃避是解決不了問題的,於是我硬著頭皮嘗試的去理解它,今天簡單記錄下來,以供以後來鄙視
正則表達是其實就是規則表示式,就是我們要找的條件翻譯成計算機能讀懂的語言
建立正則物件有兩種方式:
js風格——new regexp("a","i");
perl風格——/a/i;
語法與釋義:
基礎語法 "^({})({})({})$"
正則字串 = "開始([包含內容])([包含內容])([包含內容])結束"
匹配郵箱的例子
//郵箱規則拆分:開始一串數字、字母、下劃線@一串數字、英文.一串英文(最少2,最多4)結束
var re=/^\w+@[a-z0-9]+\.[a-z]$/g;
其中g代表全域性匹配,i代表不區分大小寫;
常用運算子與表示式:
^ 開始
() 域段
包含,預設是乙個字元長度
[^] 不包含,預設是乙個字元長度
匹配長度
. 任何單個字元(\. 字元點)
| 或\ 轉義
$ 結尾
[a-z] 26個大寫字母
[a-z] 26個小寫字母
[0-9] 0至9數字
[a-za-z0-9] 26個大寫字母、26個小寫字母和0至9數字
, 分割
去掉首尾空格例子:--考察開頭和結束字元使用
var re=/^\s+|\s$/g;
匹配是否存在中文:
var re=/[\u4e00-\u9fa5]/;
理解常用的正規表示式:
[abc] a或者b或者c
等價:等價是等同於的意思,表示同樣的功能,用不同符號來書寫。
表示範圍,至少出現n次,最多m次
?,*,+,\d,\w 都是等價字元
量詞:?等價於匹配長度 //零次或1次
*等價於匹配長度 //任意次
+等價於匹配長度 //一次或任意次
\d等價於[0-9]
\d等價於[^0-9]
\w等價於[a-za-z_0-9]
\w等價於[^a-za-z_0-9]
\b匹配乙個單詞邊界,也就是指單詞和空格間的位置(即正規表示式的「匹配」有兩種概念,一種是匹配字元,一種是匹配位置,這裡的\b就是匹配位置的)。例如,「er\b」可以匹配「never」中的「er」,但不能匹配「verb」中的「er」
\b匹配非單詞邊界。「er\b」能匹配「verb」中的「er」,但不能匹配「never」中的「er」
運用正則,寫完美版getbyclass()
functiongetbyclass(oparent,aclass)
}return
aresult;
}
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...