国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > regex > 正文

正則表達(dá)式小結(jié)篇

2020-01-20 22:03:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

正則表達(dá)式就是由普通字符(例如字符 a 到 z)以及特殊字符(稱為元字符)組成的文字模式。該模式描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。

下面小編給大家總結(jié)了些關(guān)于正則表達(dá)式知識(shí)點(diǎn),具體內(nèi)容如下所示:

1、元字符

  [擁有特殊含義的元字符]
  /d -> 匹配一個(gè)0-9的數(shù)字,相當(dāng)于[0-9],和它相反的是/D ->匹配一個(gè)除了0-9的任意字符
  /w -> 匹配一個(gè)0-9、a-z、A-Z、_的數(shù)字或字符,相當(dāng)于[0-9a-zA-Z_]
  /s -> 匹配一個(gè)空白字符(空格、制表符...)
  /b -> 匹配一個(gè)單詞的邊界
  /t -> 匹配一個(gè)制表符
  /n -> 匹配一個(gè)換行
  . -> 匹配一個(gè)除了/n以外的任意字符
  ^ -> 以某一個(gè)元字符開(kāi)頭
  $ -> 以某一個(gè)元字符結(jié)尾
  / -> 轉(zhuǎn)移字符
  x|y -> x或者y的一個(gè)
  [xyz] -> x、y、z中的任意一個(gè)
  [^xyz] -> 除了xyz中的任意一個(gè)字符
  [a-z] -> 匹配a-z中的任意一個(gè)字符
  [^a-z] -> 匹配除了a-z中的任意一個(gè)字符
  () -> 正則中的分組

  注意:

  1)關(guān)于[]

    a、[+] ->中括號(hào)中出現(xiàn)的所有字符都代表的是本身的意思
    b、[12-65] ->這個(gè)不是12-65而是1/2-6/5三者中的一個(gè)

  2)關(guān)于()

    a、分組的作用是改變默認(rèn)的優(yōu)先級(jí),例如:/^18|19$/,181、189、119、819、1819...都符合,而不是我們認(rèn)為的18或19,但是改成/^(18|19)$/就是單純的18或19了
    b、可以在捕獲大正則匹配的內(nèi)容同時(shí),把分組匹配的內(nèi)容也進(jìn)行捕獲->分組捕獲
    c、分組引用,例如:/^(/d)(/w)/2/1$/,這里的/2是和第二個(gè)分組出現(xiàn)一模樣的內(nèi)容,/1是和第一個(gè)分組出現(xiàn)一模一樣的內(nèi)容,例如:"0aa0"就符合了

  [代表數(shù)量的量詞元字符]

  * -> 0到多個(gè)
  + -> 1到多個(gè)
  ? -> 0到1個(gè)
  {n} -> 出現(xiàn)n次
  {n,} -> 出現(xiàn)n到多次
  {n,m} -> 出現(xiàn)n到m次

  注意:

  1)關(guān)于?的幾種情況

    a、放在非量詞元字符后面,代表出現(xiàn)0-1次
    b、放在量詞元字符后面,代表取消捕獲時(shí)候的貪婪性,例如:reg=//d+/; reg.exec("2015") -> "2015" 但是如果正則這樣寫 reg=//d+?/; reg.exec("2015") -> "2"
    c、在分組開(kāi)頭加?:,代表當(dāng)前的分組只是匹配不進(jìn)行捕獲,例如:/^(?:/d+)$/
    d、在分組開(kāi)頭加?=,正向預(yù)查,例如:/^abcdef(?=1|2)$/ 只有"abcdef1"和"abcdef2"才符合
    e、在分組開(kāi)頭加?!,負(fù)向預(yù)查,例如:/^abcdef(?!1|2)$/ 除了"abcdef1"和"abcdef2"不符合,其他的只要是"abcdef(任何的東西)"都符合

  [代表本身意思的元字符]

  除了以上的,在字面量方式中,我們出現(xiàn)的其他任意字符代表的都是自己本身的意思

  var num=12;
  var reg=/^/w"+num+"$/; ->這里"+num+"不是把變量的值拼接,而這里的不管是"還是+都是元字符

  ->對(duì)于需要拼接字符串和變量的方式我們只能使用實(shí)例方式創(chuàng)建正則

2、修飾符

  i -> ignoreCase 忽略字母的大小寫
  g -> global 全局匹配 (加上g可以解決正則捕獲時(shí)候的懶惰性)
  m -> multiline 多行匹配

3、項(xiàng)目中常用的正則

  1)有效數(shù)字的

var reg=/^[+-]?(/d|([1-9]/d+))(/./d+)?$/;

  2)郵箱的

 var reg = /^/w+((-/w+)|(/./w+))*@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+$/;

  3)電話的

 var reg = /^1/d{10}$/;

  4)年齡在18-65之間的

 var reg = /^((18|19)|([2-5]/d)|(6[0-5]))$/;

  5)中文姓名

 var reg = /^[/u4e00-/u9fa5]{2,4}$/;

  6)身份證

 var reg = /^(/d{6})(/d{4})(/d{2})(/d{2})(?:/d{2})(/d)(?:/d|X)$/; //-> 12828(省市縣) 1990(年) 12(月) 04(日) 06 1(奇數(shù)是男偶數(shù)是女) 7(數(shù)字或者X)

4、正則的匹配

  reg.test([string]) ->true就是匹配成功  false->匹配不成功

5、正則的捕獲

  1)reg.exec([string])

    -> 首先去匹配,匹配成功在捕獲,返回的是一個(gè)數(shù)組; 如果匹配不成功返回的是null;
    -> 正則的捕獲即懶惰又貪婪
    -> 解決懶惰性 在正則的末尾增加全局修飾符g
    -> 解決貪婪性 在量詞后面加?

以上所述是小編給大家介紹的正則表達(dá)式小結(jié)篇,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 册亨县| 呼和浩特市| 思茅市| 扶沟县| 潞城市| 上虞市| 勃利县| 河东区| 湄潭县| 兰西县| 巴青县| 密云县| 吉木萨尔县| 法库县| 武夷山市| 迭部县| 长子县| 桂东县| 嘉善县| 林芝县| 余江县| 福贡县| 莱州市| 嘉鱼县| 淳安县| 通州区| 福清市| 山西省| 黄平县| 靖边县| 扎赉特旗| 南木林县| 咸宁市| 兴山县| 石棉县| 凤山县| 奈曼旗| 瓮安县| 福建省| 淅川县| 同德县|