整理正則表達式

  1. ? 通配符匹配文件名中的 0 個或 1 個字符,而 * 通配符匹配零個或多個字符

例子:/?a/ 可以匹配字符串:aa 1a a
/*a/ 可以匹配字符串: adsfa 1223a a

  1. + 號代表前面的字符必須至少出現(xiàn)一次(1次或多次)
  1. () 標記一個子表達式的開始和結束位置。子表達式可以獲取供以后使用
  1. . 匹配除換行符 \n 之外的任何單字符
  1. /^[0-9]+abc$/
    ^ : 為匹配輸入字符串的開始位置
    [0-9]+匹配多個數(shù)字, [0-9] 匹配單個數(shù)字,+ 匹配一個或者多個。
    abc$匹配字母 abc 并以 abc 結尾,$ 為匹配輸入字符串的結束位置

例子 : 123abc 8789000abc
不能匹配:(123dsabc)

  1. /^[a-z0-9_-]{6,18}$/
    匹配a-z 字符,0-9數(shù)子,下劃線_ ,連接符- ,6-18位字符串

例子:abc12_3- 090redf_99 123456 abcdefg
不能匹配:adf(不夠六位) fds123$(含有不包含的特殊字符)

7.非打印字符

  • \cx 匹配由x指明的控制字符。例如, \cM 匹配一個 Control-M 或回車符。x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個原義的 'c' 字符。
  • \f 匹配一個換頁符。等價于 \x0c 和 \cL。
  • \n 匹配一個換行符。等價于 \x0a 和 \cJ。
  • \r 匹配一個回車符。等價于 \x0d 和 \cM。
  • \s 匹配任何空白字符,包括空格、制表符、換頁符等等。等價于 [ \f\n\r\t\v]。注意 Unicode 正則表達式會匹配全角空格符。
  • \S 匹配任何非空白字符。等價于 [^ \f\n\r\t\v]。
  • \t 匹配一個制表符。等價于 \x09 和 \cI。
  • \v 匹配一個垂直制表符。等價于 \x0b 和 \cK。

8.限定符

  • 除了 * , ? , + 之外 ,還有 {n} , {n,},{n,m}

  • {n} n 是一個非負整數(shù)。匹配確定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的兩個 o。

  • {n,} n 是一個非負整數(shù)。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等價于 'o+'。'o{0,}' 則等價于 'o*'。

  • {n,m} m 和 n 均為非負整數(shù),其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 將匹配 "fooooood" 中的前三個 o。'o{0,1}' 等價于 'o?'。請注意在逗號和兩個數(shù)之間不能有空格。

  • \color{#ff0000} {注意:} *、+ 限定符都是貪婪的,因為它們會盡可能多的匹配文字,只有在它們的后面加上一個?就可以實現(xiàn)非貪婪或最小匹配。

9.定位符

  • ^ 匹配輸入字符串開始的位置
  • $ 匹配輸入字符串結尾的位置
  • \b 匹配一個單詞邊界,即字與空格間的位置。
  • \B 非單詞邊界匹配,(邊界的匹配不了)

10.選擇

圓括號將選擇項括起來,各選項用 | 分隔。但是() 會使相關的匹配被緩存??梢允褂?: 、 ?= 、?! (非捕獲源)放在第一個選項前來使得它不被緩存。

  1. 反向引用
例子:
 var str = "Is is the cost of of gasoline going up up";
var patt1 = /\b([a-z]+) \1\b/ig;
document.write(str.match(patt1));
匹配出的結果是: Is is,of of,up up
  • \1 指定第一個子匹配項
  • g 正則表達式后面的全局標記 g 指定將該表達式應用到輸入字符串中能夠查找到的盡可能多的匹配
  • i 不區(qū)分大小寫
例子:
var str = "http://www.runoob.com:80/html/html-tutorial.html";
var patt1 = /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/;
arr = str.match(patt1);
for (var i = 0; i < arr.length ; i++) {
    document.write(arr[i]);
    document.write("<br>");
}
//第一個括號子表達式包含 http
//第二個括號子表達式包含 www.runoob.com
//第三個括號子表達式包含 :80
//第四個括號子表達式包含 /html/html-tutorial.html
  • [] 里匹配的元素前面帶上 ^ 表示匹配除了[]中的元素之外的元素
  • \w 匹配字母、數(shù)字、下劃線。等價于'[A-Za-z0-9_]'。
  • \W 匹配非字母、數(shù)字、下劃線。等價于 '[^A-Za-z0-9_]'。
  • \d 匹配一個數(shù)字字符。等價于 [0-9]。
  • \D 匹配一個非數(shù)字字符。等價于 [^0-9]。

漢字:^[\u4e00-\u9fa5]{0,}$

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容