1. 程式人生 > >正則表達式語法

正則表達式語法

轉義 字符數 scrip 嵌套 區分 出現的次數 編碼 數字 下劃線

一、定義

  用來描述或匹配一系列符合某個規則的字符串信息的字符串。

  通常用來檢驗字符串是否符合某些規則,或者匹配(替換)被操作的字符串中的某些信息。

二、基本語法

  1.以“/”開始,以另一個“/”結束

  2.結束符“/”後可以有g(global-在整個字符串中搜索)、i(ignore-忽略大小寫)、m(multiline-在多行中搜索)

  3.在JavaScript中,正則表達式通過RegExp類(var regExp= new RegExp(“JavaScript”))實現以及支持以兩斜線引用的Perl風格(/JavaScript/)

三、元字符

  更加方便定制需要匹配的模式;註意區分大小寫

  1. . 匹配換行符(/n)以外的任意字符

  2. ^ 匹配字符串的開始

  3. $ 匹配字符串的結束

  4. \b匹配單詞的邊界

  5.\d匹配數字

  6. \s匹配任意空白符(空格、換行、換頁。。。)

  7.\w匹配字母、數字、下劃線或漢字

  8.\轉義字符

四、量詞

  指定字符或字符串出現的次數

  1. *出現0至多次

  2. +出現1至多次

  3. ?出現0至1次

  4. {n}出現n次

  5.{n,}出現n至多次

  6.{n,m}出現n至m次

五、字符類

  字符類是放在方括號中的,用於匹配字符數組的一些字符

  1.簡單類:簡單匹配字符 [abc]

  2.負向類:匹配指定以外的字符 [^abc];

       ^表示該符號後面以外的字符,又稱脫字符號;

       此外,反義字符還有\W(字母、數字、下劃線以及漢字以外的字符)、\S(空白字符以外的字符)、\D(數字以外的字符)、\B(匹配非單詞的邊界)

  3.範圍類:表示在 一定範圍內取值[a-z]

  4.組合類:其他類多種組合;

       例:匹配所有英文字符及數字 var reg=/[A-Za-z0-9]/;

       在使用組合類時,字符串不允許出現空格

       在JavaScript中不支持形如[A-Z[0-9]]的範圍類嵌套

六、分組

  由字符串和量詞組成的模式;用於匹配多個字符串

  1.由小括號包圍分組(abc)

  2.分組可嵌套(^123(abc)*)

  3.例判斷輸入日期格式是否正確:var dataReg=/^(\d{4})(-)(\d{1,2})(-)(\d{1,2})$/; 

七、反向引用

  建立在分組的基礎上的對正則表達式的復雜應用;當存在多個分組嵌套或者並列的情況下,需要使用多個分組中的某個分組的值時可使用反向引用

  1.每個分組都被存放在一個特殊的地方以被使用

  2.每個分組擁有一個自動的編碼組號:從左到右,以左括號為標誌,第一個出現的分組為1,以此類推(從1開始,不同於數組、列表)

  反向引用的使用

  1.$分組:反向引用時的標識符;

      如var dataReg=/^(\d{4})(-)(\d{1,2})(-)(\d{1,2})$/ ,$1表示第一個分組

  2.\分組:轉義字符分組;適用於分組中引用分組

      如匹配字符串“abcabc” ,/(dog)\1/

八、候選

  使用按位或(|)表選擇

  如同時匹配“act”和“do”:var reg=、act|do/g;

   

正則表達式語法