成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

正則表達(dá)式之小有名氣

dreamtecher / 1651人閱讀

摘要:本來想把一些預(yù)定義字符類寫完的,轉(zhuǎn)念一想灌輸太多內(nèi)容是不利于學(xué)習(xí)的,而且那些東西也并不是很重要,只是用的時(shí)候現(xiàn)查的一些字母而已。所以留到下章再說

在上一篇文章已經(jīng)講了如何匹配簡單的字符串,如何全局搜索,以及一些特殊字母i,g,m所代表的含義
這篇文章講的內(nèi)容有點(diǎn)多最好分兩次讀,不過不用擔(dān)心很多東西并不需要你特意記住
知道有那么一回事先用先查都OK

再談^和$
之前已經(jīng)了解過1表示除a,b,c之外的字符,現(xiàn)在又要多一種用法了
/^test/  表示以test開頭的字符 這里的^表示以...開頭
那么$表示什么呢? 它的含義是以...結(jié)尾
/test$/ 表示以test結(jié)尾的字符
轉(zhuǎn)義
首先我們要知道并不是所有的字符都與自身等價(jià)的,比如/hello/表示我們要匹配‘hello’字符,但是如果想匹配food$并不能這么寫/food$/,因?yàn)?有獨(dú)特的含義,就像我們上篇文章學(xué)到的[],^這幾個符號一樣。如果想要匹配"food$"這個字符串,那就需要用反斜杠進(jìn)行轉(zhuǎn)義,通俗的說就是在特殊符號前面加上 就像這樣
/food$/ 匹配food$字符
從webpack配置學(xué)正則
我copy了一段webpack配置,只看rules中test表示的正則就可以
在正則中.也有特定的含義,所以如果把它當(dāng)字符進(jìn)行匹配的話也要進(jìn)行轉(zhuǎn)義根據(jù)上面所學(xué)到的,判斷下面代碼中的正則表達(dá)式所代表的含義,答案我已經(jīng)寫在注釋中了
module.exports = {
  module: {
    rules: [
      { test: /.css$/, use: "css-loader" },//以.css結(jié)尾的 使用css-loader處理
      { test: /.ts$/, use: "ts-loader" }// 以.ts結(jié)尾的
    ]
  }
};
重復(fù)匹配
如果要匹配四個‘a(chǎn)’字符,我們當(dāng)然可以用/aaaa/這樣表示,如果匹配5個"a" 10個"a"呢?正則沒那么‘傻’早已為我們準(zhǔn)備了簡便方法/a{4}/ 表示匹配含有連續(xù)4個"a"的字符
在重復(fù)選項(xiàng)上,正則提供了很多方式

在一個字符后面加一個"?",可以定義該字符是可選的(可以出現(xiàn)一次或者根本不出現(xiàn))

/t?est/  可以匹配 test 或者 est

如果一個字符要出現(xiàn)一次或多次(至少出現(xiàn)一次),可以使用加號"+"

/t+est/ 可以匹配test ttest tttest 而不能匹配est

如果一個字符要出現(xiàn)零次或多次,可以使用星號"" (注意與?的區(qū)別,?代表要么不出現(xiàn)要么只能出現(xiàn)一次 代表要么不出現(xiàn)要么出現(xiàn)不止一次)

/t*est/ 可以匹配test ttest tttest est

也可以在字符后面的花括號里指定一個數(shù)字來表示重復(fù)次數(shù)

/a{4}/ 匹配包含連續(xù)4個a的字符串

也可以在字符后面的花括號指定一個重復(fù)次數(shù)的區(qū)間

/a{4,10}/ 匹配任何含有連續(xù)4個至10個a的字符串

還可以在省略區(qū)間中第二個值(但是要保留逗號) 這里直接上代碼,用文字?jǐn)⑹鋈菀酌院?/p>

/a{4,}/ 如果逗號后面不寫第二個參數(shù)那么表示匹配任何含有連續(xù)4個或多于4個a的字符串
這些重復(fù)操作符可以是貪婪的可以是非貪婪的,默認(rèn)情況它們是貪婪的
這里不用口語敘述,看代碼更直觀
遇到連續(xù)四個a即停止搜索
var str = "aaaabbbcaadda"
var newStr = str.replace(/a+/,"嘿")//"嘿bbbcaadda"
因?yàn)榧恿薵進(jìn)行全局匹配,我們看一看有哪些字符符合條件
開頭的4個a
c后面的2個a
d后面的a
這就是貪婪匹配遇到成串的符合條件的字符,將匹配這個’串‘

var str = "aaaabbbcaadda"
var newStr = str.replace(/a+/g,"嘿")//"嘿bbbc嘿dd嘿"
如果后面在"+"后跟了"?"則表示進(jìn)行非貪婪匹配,具體結(jié)果請看注釋
var str = "aaaabbbcaadda"
var newStr = str.replace(/a+?/g,"嘿")//"嘿嘿嘿嘿bbbc嘿嘿dd嘿"
分組
上面已經(jīng)說到可以用/t+est/這種用法,但是+只影響它前面的t,如果想讓+影響多個字符可以使用括號進(jìn)行分組
/(ab)+/ 匹配一個或多個連續(xù)出現(xiàn)的字符串"ab"
var str = "abcdababef"

var newStr = str.replace(/(ab)+/g,"嘿")//"嘿cd嘿ef"
請注意cd后的連續(xù)兩個ab被替換成一個嘿而不是兩個
"|"操作符
可以使用豎線表示或者
/a|b/ 匹配a或b字符

/(ab)+|(cd)+/ 匹配出現(xiàn)一次或多次的“ab” 或者“cd”
這一篇概念有點(diǎn)多,不需要一下看完,分兩次看好了。本來想把一些預(yù)定義字符類寫完的,轉(zhuǎn)念一想灌輸太多內(nèi)容是不利于學(xué)習(xí)的,而且那些東西也并不是很重要,只是用的時(shí)候現(xiàn)查的一些字母而已。所以留到下章再說
  • abc ?

  • 文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/93718.html

    相關(guān)文章

    • 面試--js常見面試題

      摘要:可以由構(gòu)造函數(shù)來訪問到每個對象的屬性指向自身構(gòu)造函數(shù)的屬性是原型對象的屬性,指向這個原型對象所對應(yīng)的構(gòu)造函數(shù)。 引用文字 1、delete delete不可以刪除變量 只可以刪除變量上的屬性 2、有名函數(shù)被賦值為一個變量 再訪問這個 名(有名函數(shù)的名)就會報(bào)錯 var f=function g() { return 1 } console(g()...

      yacheng 評論0 收藏0
    • JS 獲得瀏覽器類型和版本

      摘要:獲取瀏覽器類型和版本介紹完瀏覽器的信息,下面就是寫正則來判斷了根據(jù)關(guān)系進(jìn)行判斷從關(guān)系判斷中,我們會發(fā)現(xiàn)判斷的順序很重要,原因是很多瀏覽器都是多核的。參考判斷瀏覽器的方法總結(jié)判斷瀏覽器類型及版本新增判斷瀏覽器類型的方法總結(jié)歡迎訪問我的博客。 最近碰到了一個問題,判斷瀏覽器的類型,我們熟知的 IE, Firefox, Opera, Safari, Chrome 五款比較有名的瀏覽器,有時(shí)候...

      Tangpj 評論0 收藏0
    • 正則達(dá)式瑞士軍刀

      摘要:瞎乎出品瞎乎第二期正則表達(dá)式之瑞士軍刀正則表達(dá)式,這是一塊硬骨頭,很難啃,但是啃著又很香。正則表達(dá)式使用單個字符串來描述匹配一系列匹配某個句法規(guī)則的字符串。 瞎乎 出品瞎乎第二期:正則表達(dá)式之瑞士軍刀 正則表達(dá)式(Regular Expression),這是一塊硬骨頭,很難啃,但是啃著又很香。 正則表達(dá)式使用單個字符串來描述、匹配一系列匹配某個句法規(guī)則的字符串。很多地方我們都需要使用正...

      Mr_houzi 評論0 收藏0
    • js謎正則達(dá)式

      摘要:用正則表達(dá)式語言創(chuàng)建的。匹配非數(shù)字的字符使用元字符元字符在正則表達(dá)式中有特殊含義的字符。正則表達(dá)式默認(rèn)是區(qū)別大小寫的。正則表達(dá)式的字符串表示。若是一個正則表達(dá)式,若有標(biāo)志則替換所有匹配之處,若沒有則只替換第一個匹配之處。 前言 好久之前就說要寫一篇正則表達(dá)式的文章,正則表達(dá)式總是記了又忘,忘了再記,記了再忘,卒。言歸正傳,今天終于要研究一下這個謎一樣的正則表達(dá)式了。其實(shí)正則表達(dá)式并不難...

      wendux 評論0 收藏0

    發(fā)表評論

    0條評論

    最新活動
    閱讀需要支付1元查看
    <