golbs的匹配規則

2021-08-19 21:57:40 字數 3221 閱讀 9259

a.「*」:匹配檔案中0個或者多個字元,但是不會匹配路徑中的分隔符,除非路徑分隔符出現在末尾。例

a)  

./style/*

:能匹配

./style

目錄下的

a.js

,x.y

,abc

,abc/

,但不能匹配

a/b.js

b)  

./style/*.js

:匹配./style

目錄下所有的js文

件.c)  

/style/*.*

:匹配./style

目錄下所有的檔案

d)  

./style/*/*.js

:只要層級相同,可以匹配任意目錄下的任意

js檔案 比如./

style/a

/b.js

,不能匹配a/

b.js,

a/b/

c/d.

jsb.「**」:匹配路徑中的0個或多個目錄及其子目錄,需要單獨出現,即它左右不能有其他東西了。如果出現在末尾,也能匹配檔案。例

a)  

./style/**

:匹配style目錄所有的目錄和檔案,如能匹配:

./style/lib

./style/mudules/b

./style/a.js

./style/lib/res.js

./style/mudules/b/a.js

b)  

./style/**/*.js

:匹配style目錄及其所有子目錄下的所有js檔案,如能匹配:

./style/a.js

./style/lib/res.js

./style/mudules/b/a.js

c)  

./style/**/*

:匹配style目錄下的所有目錄和檔案,比如能匹配

./style/a.js

./style/bb

./style/images/c.png

d)  

a/**b/z

:能匹配 a/b/z,a/sb/z,但不能匹配a/x/sb/z,因為只有單**單獨出現才能匹配多級目錄

c.「?」:匹配乙個字元,不會匹配路徑分隔符

a)  

?.js

:能匹配檔名只有乙個字元的js檔案,如a.js, b.js, 但不能匹配檔名為2個字元及其以上的js的檔案

d.[...]:由多個規則組成的陣列,可以匹配陣列中符合任意乙個子項的檔案,當子項中第乙個字元為!或者^時,表示不匹配該規則

a)  

./style/a[0-3].js

: 匹配style目錄下的a0.js, a1.js, a2.js, a3.js

b)  

[xyz].js

:只能匹配 x.js,y.js,z.js,不會匹配xy.js,xyz.js等,整個中括號只代表乙個字元

c)  

[^xyz].js

:能匹配 a.js,b.js,c.js等,不能匹配x.js,y.js,z.js

注:使用陣列的方式還有乙個好處就是可以很方便的使用排除模式,在陣列中的單個匹配模式前加上!

即是排除模式,它會在匹配的結果中排除這個匹配,要注意一點的是不能在陣列中的第乙個元素中使用排除模式

d)  

gulp.src([*.js,'!b*.js'])

:匹配所有js檔案,但排除掉以b開頭的js檔案

e)  

gulp.src(['!b*.js',*.js])

:不會排除任何檔案,因為排除模式不能出現在陣列的第乙個元素中

e.

展開模式,根據裡面的內容展開為多個規則,能匹配所有展開之後的規則將上面的例子擴充套件一下,可以如下寫

a)  

['./**/*.', '!/**']

:除開build,******,images,node_modules目錄,匹配根目錄下所有的html與php檔案

f.  !(pattern|pattern|pattern) :這裡指排除符合這幾個模式的所有檔案

a)  

./style/!(?|jquery).js

:匹配排除檔名為乙個字元的js檔案,以及排除jquery.js之後的所有js檔案

b)  

['./**/!(_)*.', '!/**']

:排除build與node_modules目錄,並排除其他目錄下以下劃線_開頭的html與php檔案,匹配其餘的html與php檔案

g.  ?(pattern|pattern|pattern) 匹配括號中給定的任一模式0次或者1次,類似於js正則中的(pattern|pattern|pattern)?

a)  

'./style/?(a|a2|b).js'

:匹配style目錄下的a.js, a2.js, b.js,不能組合,匹配0次或者1次

h.  @(pattern|pattern|pattern) :匹配多個模式中的任乙個,類似於js正則中的(pattern|pattern|pattern)

a)  

./style

/@(a|b

|c).js

:匹配style目錄下的a.js,b.js, c.js,不能組合,匹配一次,不能為空,注意與?的區別

i.  +(pattern|pattern|pattern) 匹配括號中給定任一模式1次或者多次,這幾個模式可以組合在一起匹配,類似於js正則中的(pattern|pattern|pattern)+

a)  

./style/+(a|a2|b).js

:可以匹配style目錄下的a.js, a2.js, b.js,也可以匹配他們的組合 ab.js, aa2.js, a2b.js等,至少匹配一次,為空不匹配。

j.  *(pattern|pattern|pattern) 匹配括號中給定任一模式0次或者多次,這幾個模式可以組合在一起匹配,類似於js正則中的(pattern|pattern|pattern)*

a)  

./style/*(a|b|c).js

:可以匹配style目錄下的a.js, b.js, c.js,也可以匹配他們的組合 ab.js, bc.js, ac.js,匹配0次或者多次。

IntentFilter的匹配規則

mainactivityintent intent new intent 動作 intent.setaction com.pnag.action.good 分類 intent.addcategory com.pnag.category.luck 資料 intent.setdataandtype ur...

nginx location匹配規則

location匹配命令 波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,不使用正規表示式,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄 進行普通字元精確匹配 定義乙個命名的 location,使用在內部定向時,例如 error pag...

nginx location匹配規則

location匹配命令 波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄 進行普通字元精確匹配 定義乙個命名的 location,使用在內部定向時,例如 error page,try fil...