麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Regex > 正文

深入理解正則表達式語法知識

2020-03-22 18:38:27
字體:
來源:轉載
供稿:網友
字符組[]:表示匹配若干個字符之一字符組可以淺顯的理解為一些字符的組合,字符組與普通字符的區別在于:abc普通字符表示匹配a接下來b接下來c而字符組[abc]表示在同一位置匹配a或者b或者c;由于字符組本身的含義也決定了可以將這個字符組看成是一個普通的特殊字符。普通性:普通是因為它也表示在一個位置上匹配一個字符對單個字符的操作在其上面也是可以起作用的;如:[a-z]{6};特殊性:特殊是因為,1.其他字符在其內外的含義可能不同如:-,.,^等,2.在同一個位置可以有多中選擇,但這種選擇也只是限于一個字符;各個字符在字符組內外的區別:-:在字符組內部,表示一個范圍;在字符組外僅僅表示是一個字符;例子:-在字符組外 script type="text/javascript" var str = '2016-8-20';var reg = /16-8/g;console.log(str.match(reg)); //16-8 /script -在字符組內 script type="text/javascript" var str = '2016-8-20';reg = /1[6-8]/g;console.log(str.match(reg)); //16 /script -在字符組外是一個普通字符只表示-這個字符本身,所以匹配的是1接下來是6接下來是-接下來是8的這段字符串;所以是16-8-在字符組內表示的是一個范圍,所以匹配的是1接下來是6到8之間的任意數字的字符所以是16;.:在字符組內部表示一個點;在字符組外部表示任意字符(查找單個字符,除了換行和行結束符)。.在字符組外 script type="text/javascript" var str = '2016-8-20';var reg = /6.8/g;console.log(str.match(reg)); //6-8 /script .在字符組內 script type="text/javascript" var str = '2016-8-20';var reg = /6[.]8/g;console.log(str.match(reg)); //null /script .在字符組外表示任意字符;所以匹配的是6接下來是任意一個字符接下來是8的一個字符串,所以匹配到的是6-8;.在字符組內只是一個普通字符表示它本身;所以匹配的是6接下來是.接下來是8的一個字符串由于未匹配到所以為null;對于字符組還可以分為匹配型字符組和排除型字符組主要是因為^的含義的變化^: 脫字符;例子:^在字符組外 script type="text/javascript" var str = 'han';var reg = /^ha/g;console.log(str.match(reg)); //ha /script ^在字符組內 script type="text/javascript" var str = 'han';var reg = /[^0-9]/g;console.log(str.match(reg)); // h,a,n /script 脫字符在[]外部是一個錨點,表示匹配以某某字符開頭的字符或者字符串,在[]中有除了的意思注意:[^a]表示匹配一個位置不等于a的字符,不要去理解成這個位置不是a就能匹配,后者的理解可以匹配一個空行,注意這個區別例子: script type="text/javascript" var str = 'han';var reg = /n[^q]/g;console.log(str.match(reg)); //null /script 注意:這個例子在n之后沒有任何字符,所以匹配的結果為空,如果按照上述的第二種理解可能就會認為匹配結果是:n[]中不管有多少字符,在同一個位置只會匹配到其中的任意一個,如果說我要在一個位置上匹配一個字符串那又該如何呢?(2).選擇此時可以用()加|這個組合,|在html' target='_blank'>正則表達式中是或者的意思,而()在正則表達式中劃分一個范圍;單獨的()使用時沒有意義的,只有當它和其他量詞共同使用才會體現出它的作用(先說下淺顯的例子,貪婪匹配和非貪婪匹配再單獨去說,這里先不作說明);例子: script type="text/javascript" var str = '2016-8-20';var reg = /(16-8)/g;console.log(str.match(reg)); //16-8 /script script type="text/javascript" var str = '2016-8-20';var reg = /16-8/g;console.log(str.match(reg)); //16-8 /script 這個例子有沒有括號都一樣都表示匹配16-8這個字符串當()和|一起使用則是一種多選結構,可以匹配任意子表達式()表示的是一個范圍;|表示的是一個選擇方向例子: script type="text/javascript" var str = 'greygray';var reg = /gr[ea]y/g;console.log(str.match(reg)); // grey,grayreg = /gr(e|a)y/g;console.log(str.match(reg)); //grey,gray /script 以上這兩種匹配的結果都是grey, gray也就是說(|)的分支選擇結構在一定程度上是可以和[]進行互相替代例子: script type="text/javascript" var str = 'greygray';var reg = /gre|ay|yg/g;console.log(str.match(reg)); //gre,yg,ay /script 輸出結果:gre,yg,ay括號的添加與否對結果的影響很大如:^hello | world | hi :匹配的是 ^hello 或者 world 或者 hi^(hello | world | hi):.匹配的起始行是 ^hello 或者 ^world 或者 ^ hi注意:多選結構雖然有時候可以用字符組來表示,他倆之間可以互相表示,但是一個字符組只能匹配目標文本中的單個字符,而每個多選結構自身都可能是完整的正則,都可以匹配任意長度的文本在正則表達式中需要注意的幾點:1.在正則表達式中,空格字符也被視作一個規則字符;2.-;.;*等在[]內和[]外的含義并不相同注意區別;注意元字符在字符組內外的區別;3.當對幾個字符添加[]之后該字符串就被視作一個字符組,而對單個字符操作的?*等也可以對其使用,量詞之間的混合使用和量詞與分組選擇之間的混合會有一個貪婪和非貪婪匹配的概念,對此會單獨拿出總結;4.分支結構和字符組的區別;分支可以匹配任意長度的文本;字符組只能匹配一個字符;5.注意一些概念的理解:比如:[^x]表示‘匹配一個不等于x的字符'而不是'只有當這個位置不是x才能匹配';[^x]后面的概念可以匹配一個空行在比如{x,y},?,*的理解;6.在匹配中決定匹配是否成功的是{x,y}中的x,x對匹配成功與否起關鍵作用。以上所述是小編給大家帶來了深入理解正則表達式語法知識的全部敘述,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的,再此頁非常感謝大家對phpstudy網站的支持!PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鲁丝一区二区二区四区 | 九九精品影院 | 免费久久久久 | 成人午夜免费福利 | 一级黄色免费观看 | 日日狠狠久久偷偷四色综合免费 | 久久精品亚洲国产奇米99 | 黄色网址在线视频 | 在线亚洲播放 | 日本中文字幕电影在线观看 | v11av在线视频成人 | 久久久久久免费 | 欧美成人精品一区二区 | 精品国内视频 | 国产亚洲精品综合一区91555 | 一级一级一级一级毛片 | 成人资源在线观看 | 国产免费传媒av片在线 | 免费国产自久久久久三四区久久 | 免费看欧美一级特黄a毛片 九色com | 欧美成人黄色小视频 | 欧美一级黄色免费看 | 精品av在线播放 | 看免费黄色大片 | 中文字幕在线观看www | 美女视频黄视大全视频免费网址 | 看一级毛片| 欧美一级毛片一级毛片 | 久久久www成人免费精品 | 密室逃脱第一季免费观看完整在线 | 天堂成人一区二区三区 | 免费毛片小视频 | 最新中文字幕免费视频 | 神马福利网 | 狠狠干天天操 | 国产91九色 | 国产免费大片视频 | 午夜精品久久久久久久96蜜桃 | 成年人性视频 | 亚洲国产午夜精品 | 99在线啪|