正則表達式筆記

正則表達式

在線工具

url:[http://regexper.com](http://regexper.com)

簡單表示

循環:
    ?:表示0或1次出現
    +:表示1~n次出現
    *:表示0~n次出現
    {n}:循環出現n次
    {n,m}:循環出現n~m次
    {n,}:循環至少n次

匹配:
    .:匹配任意字符

分組:
    ():括號內的內容屬於分組的內容 

特殊轉義:
    \b:單詞邊界
    \B:非單詞邊界
    \d:數字
    \D:非數字字符
    \s:空白符
    \S:非空白符
    \w:單詞字符
    \W:非單詞字符

* 一般變大寫就是取反的意思

特殊字符:
    [/-]:表示/或者-字符
    ^:表示開頭,在表達式的中間,如[^abc]:表示不是abc的其它字符,表取反
    $:表示結尾,或者是替換後的分組後的分組序號
    -:範圍類,a-z表示a到z的字符
    ?:{3,6}?加了?後,表示非貪婪模式,匹配到3個就停止一次匹配,默認是貪婪模式,會儘可能多的匹配字符串
    |:分支(on|ca)
    ?: :(?:)表示忽略分組

前瞻:
    正向前瞻:exp(?=assert)
    負向前瞻:exp(?!assert)
    * 匹配的只是見面的exp,後面是驗證字符串的,不參與匹配替換

在JavaScript中的使用

字面量
    聲明:
        var reg=/ \bis\b /(g);//寫在兩個/之間的是正則表達式,加了g後,表示全文匹配,否則是匹配一個而已
    使用:
        String.replace(reg,'IS');   
構造函數:
    聲明:
        var reg=new RegExp('\\bis\\b','gim');\適用於轉義

參數:
    g:global 全文搜索,不添加,搜索到第一個匹配爲止
    i:ignoreCase 忽略大小寫,默認大小寫敏感
    m:multiline 多行搜索

方法:
    reg.test('String');測試String是否與reg的正則匹配
        測試後後改變lastIndex的值
    reg.exe('String');使用正則表達式模式對字符串執行搜索,並加.將更新全局RegExp對象的屬性以反映匹配結果。
        沒有就返回null,否則返回一個結果數組:
            index:聲明匹配文本的第一個字符的位置
            input:存放被檢索的字符串string,後續的字符串表示分組的匹配的結果信息
        加了g:lastIndex就有作用,每次匹配後會更新lastIndex的信息,下次匹配就從lastIndex開始匹配,每次只是給出一次的結果,如果是要全文的信息,要利用循環得出結果。
    String.search(reg|string);string會轉換成正則表達式,成功返回index的下標,失敗index是-1;g標誌對表達式無效
    String.match(reg):不加g和exec基本相同
        加了g後,返回所有的匹配的字符串
    String.splite(reg);返回分割後的數組
    String.repalce(reg,'content'|function);
        function(match,groupInfo,index,origin);
                匹配信息,分組信息(根據分組的數量,會有多個參數),匹配下標,原文
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章