doufang1954 2015-08-27 08:35
浏览 99
已采纳

正则表达式排除不能与inotifywait一起使用的非golang文件

Below are the regex for filtering out all the non go files (i.e those with '.go' extension)

^([\S]*[^.][^g][^o]|[\S]*.[^g].|[\S]*..[^o]$|[\S]*[^.]..|[\S]{1,2})$

^([^.]*)($|[.]($|[\S]$|g[^o]$|[^g]o$|[^g][^o]$|([\S]+)\.($|.$|g[^o]$|[^g]o$|[^g][^o]$|[^.]{3,}$)|[^.]{3,}$))

You can test them here (click on try it 'Go' in the menu below the regex)

http://fiddle.re/80kvh6

http://fiddle.re/mhv1h6

While they seem to work correctly in go but not with inotifywait's exclude filter (which uses posix ERE format)

I am trying to setup a "watch and reload" task in my Makefile for a golang project. Also i am assuming file or folders names dont have spaces.

  • 写回答

2条回答 默认 最新

  • doumao8355 2015-08-27 12:37
    关注

    You may use

    \.[^.][^.][^.]+$|\.[^.][^o]$|\.[^g][^.]$|\.[^.]$
    

    See demo

    Or if you can group:

    \.([^.][^.][^.]+|[^.][^o]|[^g][^.]|[^.])$
    

    See demo

    See explanation:

    • \. - a literal dot
    • ([^.][^.][^.]+|[^.][^o]|[^g][^.]|[^.]) - a group of alternatives:
      • [^.][^.][^.]+ - 2 characters other than . and 1 or more characters other than ....
      • [^.][^o] - a character other than a dot and a character other than o...
      • [^g][^.] - a character other than g and a character other than a dot...
      • [^.] - a character other than a dot...
    • $ - right before the end of string.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM