find 命令的正则表达式格式

用 emacs 的 etags 生成 TAGS, 要查找 所有的 .h 和 .cpp  试了半天都不成,最后找到 GNU 才明白了 find 用的正则的格式

先附上 GNU 的 find 的参考地址 :  GUN find 的默认正则表达式格式

格式简要说明如下:

  •  '+'  '?'  ‘\+' '\?' : 和其它语言的正则表达式一样
  • [] 内的字符为原生字符,不转义,不支持类型引用,但支持范围,  如 [0-9] 正确, 但不能用   [[:digit:]] 代替;如  [\a]  表示  \ 和 a
  • 支持的扩展包括: \w \W \> \<  \b \B \` \' 

下面是比较特殊或需要注意的地方:

  • 分组用的是 \(  和 \) , 这个好像和其它的不怎么一样,一般的都 是用的是  ()
  • 或 用 \| 表示  , 和上面类似,好像和其它的也不一样, 一般的都是用是的  |
  • 除了下面的位置, ^ 没有任何特殊意义
    • 正则表达式的开始
    • 在分组标识符 \(  之后
    • 在 或 标识符  \|  之后
  • 除了下面的位置, $ 没有任何特殊的意义
    • 在正则表达式的结尾
    • 在分组标识符 \(  之后
    • 在 或 标识符  \|  之后
  • 除了在下面的位置,  '*'   '+'  '?'  永远是 特殊字符
    • 正则表达式的开始
    • 在分组标识符 \(  之后
    • 在 或 标识符  \|  之后

默认情况下用的是贪婪模式,即返回尽可能长的匹配。

posted @ 2015-07-16 19:07  咖啡加茶  阅读(942)  评论(0编辑  收藏  举报