国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

正則表達式之小有名氣

dreamtecher / 1646人閱讀

摘要:本來想把一些預定義字符類寫完的,轉念一想灌輸太多內容是不利于學習的,而且那些東西也并不是很重要,只是用的時候現查的一些字母而已。所以留到下章再說

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

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

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

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

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

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

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

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

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

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

也可以在字符后面的花括號指定一個重復次數的區間

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

還可以在省略區間中第二個值(但是要保留逗號) 這里直接上代碼,用文字敘述容易迷糊

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

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

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

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

  • 文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

    轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93718.html

    相關文章

    • 面試--js常見面試題

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

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

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

      Tangpj 評論0 收藏0
    • 正則達式瑞士軍刀

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

      Mr_houzi 評論0 收藏0
    • js謎正則達式

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

      wendux 評論0 收藏0

    發表評論

    0條評論

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