• glob模式


    学习gulp的过程中,gulp使用了被称作为glob的文件匹配模式。

    接下来我们认识下什么是glob模式。

    在计算机编程中,特别是类Unix环境,glob模式通过通配符来匹配文件名。例如:Unix命令,将所有以扩展名为.txt的文件从当前目录拷贝到textfiles目录。

    这里【*】是一个匹配任意数量字符基本通配符,*.txt就表示一个glob模式。另一个通用的通配符是【?】,它表示任意一个字符。

    最常用的通配符是 *,?,[…]:

    通配符描述例子匹配不匹配
    * 匹配任意数量的字符包括空字符 Law* Law, Laws, or Lawyer  
    *Law* Law, GrokLaw, or Lawyer.  
    ? 匹配任意一个字符 ?at Cat, cat, Bat or bat at
    [abc] 匹配任意一个包含的字符 [CB]at Cat or Bat cat or bat
    [a-z] 匹配任意一个给定范围的字符 Letter[0-9] Letter0, Letter1 etc. Letters or Letter

    注意,在所有以上例子中路径分隔符(unix的/,windows的)都不会被匹配。

    在Linux和POSIX系统中[…]有以下两个扩展:

    通配符描述例子匹配不匹配
    [!abc] 不匹配任意一个包含的字符 [!C]at Bat, bat, or cat Cat
    [!a-z] 不匹配任意一个给定范围的字符 Letter[!3-5] Letter1, Letter2 etc. Letter3, Letter4 or Letter5

    与正则的比较:

    Glob的通配符等价正则的表达式
    ? .
    * .*

    Glob尝试匹配整个字符串(例如,S*.DOC将匹配S.DOC和SA.DOC,但不匹配POST.DOC或SURREY.DOCKS),正则只匹配子串除非使用^和$。所以S*.DOC的等价正则是^S.*.DOC$。

    node glob对常用通配符又做了一些扩展:

    通配符描述例子匹配不匹配
    ** 匹配任意数量的字符包括空字符(包括路径分隔符) **/*.js /a/b/c.js  
    !(pattern|pattern) 匹配除了()内以外的pattern !(abc|bcd) aaa,bbb abc.bcd
    ?(pattern|pattern) 匹配至多一个()内的pattern ?(abc|bcd) abc bbb
    +(pattern|pattern) 匹配至少一个()内的pattern +(abc|bcd) abc bbb
    *(pattern|pattern) 匹配任意个()内的pattern *(abc|bcd) abc bbb
    @(pattern|pattern) 精确匹配()内的其中一个pattern @(abc|bcd) abc abd

    原创文章,转载请注明: 转载自xdlysk的博客

    本文链接地址: glob模式

  • 相关阅读:
    【认证】Apache Shiro对象概念
    【Java基础】char
    【Http】keepalive
    【Nginx】Nginx处理请求过程
    【CSS】块级元素和行内元素
    未A,或用水法,或不熟的题
    2017初二上期中考试总结
    动态规划中的单调队列优化_补充
    NOIP2017普及组翻车记
    对拍模板
  • 原文地址:https://www.cnblogs.com/xdlysk/p/5183604.html
Copyright © 2020-2023  润新知