正则表达式排除不适用于 inotifywait 的非 golang 文件

下面是过滤掉所有非 go 文件的正则表达式(即那些带有 '.go' 扩展名的文件)


^([\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,}$))

您可以在此处测试它们(在正则表达式下方的菜单中单击“尝试”“开始”)


http://fiddle.re/80kvh6


http://fiddle.re/mhv1h6


虽然它们在 go 中似乎可以正常工作,但在inotifywait's exclude 过滤器(使用 posix ERE 格式)时不能正常工作


我正在尝试在我的 Makefile 中为 golang 项目设置“监视和重新加载”任务。另外我假设文件或文件夹名称没有空格。


明月笑刀无情
浏览 189回答 2
2回答

炎炎设计

得到了问题。它似乎[:graph:]不是\S扩展 posix 中非空格字符的类标识符。下面是好去。^[[:graph:]]*[^.][^g][^o]$|^[[:graph:]]{1,2}$|^[[:graph:]]*.[^g].$|^[[:graph:]]*..[^o]$|^[[:graph:]]*[^.]..$甚至来自 stribizhev 评论的更好的 [^.][^g][^o]$|^..$|.[^g].$|..[^o]$|[^.]..$

FFIVE

您可以使用\.[^.][^.][^.]+$|\.[^.][^o]$|\.[^g][^.]$|\.[^.]$看演示或者,如果您可以分组:\.([^.][^.][^.]+|[^.][^o]|[^g][^.]|[^.])$看演示见解释:\. - 一个文字点([^.][^.][^.]+|[^.][^o]|[^g][^.]|[^.]) - 一组替代方案:[^.][^.][^.]+- 2 个字符以外的字符.和 1 个或多个字符以外的字符....[^.][^o]- 除点以外的字符和除o...以外的字符[^g][^.]-g除点以外的字符和除点以外的字符...[^.] - 点以外的字符...$ - 就在字符串结尾之前。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go