400-650-7353

精品課程

您所在的位置:首頁 > IT干貨資料 > web前端 > 【Web前端基礎知識】關于前端正則表達式基本用法(下)

【Web前端基礎知識】關于前端正則表達式基本用法(下)

  • 發布: Web前端培訓
  • 來源:Web前端干貨資料
  • 2020-08-19 16:37:21
  • 閱讀()
  • 分享
  • 手機端入口

3. 量詞

量詞也稱重復。掌握{m,n}的準確含義后,只需要記住一些簡寫形式。

3.1 簡寫形式

{m,} 表示至少出現m次。

{m} 等價于{m,m},表示出現m次。

? 等價于{0,1},表示出現或者不出現。記憶方式:問號的意思表示,有嗎?

+ 等價于{1,},表示出現至少一次。記憶方式:加號是追加的意思,得先有一個,然后才考慮追加。

* 等價于{0,},表示出現任意次,有可能不出現。記憶方式:看看天上的星星,可能一顆沒有,可能零散有幾顆,可能數也數不過來。

3.2 貪婪匹配和惰性匹配

看如下的例子

  1. var regex = /\d{2,5}/g; 
  2. var string = "123 1234 12345 123456"
  3. console.log( string.match(regex) );  
  4. // => ["123", "1234", "12345", "12345"] 

其中正則/\d{2,5}/,表示數字連續出現2到5次。會匹配2位、3位、4位、5位連續數字。

但是其是貪婪的,它會盡可能多的匹配。你能給我6個,我就要5個。你能給我3個,我就3要個。反正只要在能力范圍內,越多越好。

我們知道有時貪婪不是一件好事(請看文章最后一個例子)。而惰性匹配,就是盡可能少的匹配:

  1. var regex = /\d{2,5}?/g; 
  2. var string = "123 1234 12345 123456"
  3. console.log( string.match(regex) );  
  4. // => ["12", "12", "34", "12", "34", "12", "34", "56"] 

其中/\d{2,5}?/表示,雖然2到5次都行,當2個就夠的時候,就不在往下嘗試了。

通過在量詞后面加個問號就能實現惰性匹配,因此所有惰性匹配情形如下:

  1. {m,n}?  
  2. {m,}? 
  3. ?? 
  4. +? 
  5. *? 

對惰性匹配的記憶方式是:量詞后面加個問號,問一問你知足了嗎,你很貪婪嗎?

4. 多選分支

一個模式可以實現橫向和縱向模糊匹配。而多選分支可以支持多個子模式任選其一。

具體形式如下:(p1|p2|p3),其中p1、p2和p3是子模式,用|(管道符)分隔,表示其中任何之一。

例如要匹配”good”和”nice”可以使用/good|nice/。測試如下:

  1. var regex = /good|nice/g; 
  2. var string = "good idea, nice try."
  3. console.log( string.match(regex) );  
  4. // => ["good", "nice"] 

但有個事實我們應該注意,比如我用/good|goodbye/,去匹配”goodbye”字符串時,結果是”good”:

  1. var regex = /good|goodbye/g; 
  2. var string = "goodbye"
  3. console.log( string.match(regex) );  
  4. // => ["good"] 

而把正則改成/goodbye|good/,結果是:

  1. var regex = /goodbye|good/g; 
  2. var string = "goodbye"
  3. console.log( string.match(regex) );  
  4. // => ["goodbye"] 

也就是說,分支結構也是惰性的,即當前面的匹配上了,后面的就不再嘗試了。

課程好禮申請領取
您的姓名
您的電話
意向課程
 

中公優就業

官方QQ

掃描上方二維碼或點擊一鍵加群,免費領取價值599元網課,加群暗號:599。 一鍵加群

>>本文地址:
注:本站稿件未經許可不得轉載,轉載請保留出處及源文件地址。

推薦閱讀

優就業:ujiuye

關注中公優就業官方微信

  • 關注微信回復關鍵詞“大禮包”,領80G學習資料
QQ交流群
領取免費網課
(加群備注“網站”)
IT培訓交流群 加入群聊 +
軟件測試 加入群聊 +
全鏈路UI/UE設計 加入群聊 +
Python+人工智能 加入群聊 +
互聯網營銷 加入群聊 +
Java開發 加入群聊 +
PHP開發 加入群聊 +
VR/AR游戲開發 加入群聊 +
大前端 加入群聊 +
大數據 加入群聊 +
Linux云計算 加入群聊 +
優就業官方微信
掃碼回復關鍵詞“大禮包”
領取80G學習資料

測一測
你適合學哪門IT技術?

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結果
 
課程資料、活動優惠 領取通道
 
 
久久国产精品偷_久久综合久久自在自线精品自_久久香蕉网国产免费