下面是过滤掉所有非 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/80kvh6http://fiddle.re/mhv1h6虽然它们在 go 中似乎可以正常工作,但在inotifywait's exclude 过滤器(使用 posix ERE 格式)时不能正常工作我正在尝试在我的 Makefile 中为 golang 项目设置“监视和重新加载”任务。另外我假设文件或文件夹名称没有空格。
2 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
得到了问题。它似乎[:graph:]
不是\S
扩展 posix 中非空格字符的类标识符。下面是好去。
^[[:graph:]]*[^.][^g][^o]$|^[[:graph:]]{1,2}$|^[[:graph:]]*.[^g].$|^[[:graph:]]*..[^o]$|^[[:graph:]]*[^.]..$
甚至来自 stribizhev 评论的更好的 [^.][^g][^o]$|^..$|.[^g].$|..[^o]$|[^.]..$
FFIVE
TA贡献1797条经验 获得超6个赞
您可以使用
\.[^.][^.][^.]+$|\.[^.][^o]$|\.[^g][^.]$|\.[^.]$
看演示
或者,如果您可以分组:
\.([^.][^.][^.]+|[^.][^o]|[^g][^.]|[^.])$
看演示
见解释:
\.
- 一个文字点([^.][^.][^.]+|[^.][^o]|[^g][^.]|[^.])
- 一组替代方案:[^.][^.][^.]+
- 2 个字符以外的字符.
和 1 个或多个字符以外的字符.
...[^.][^o]
- 除点以外的字符和除o
...以外的字符[^g][^.]
-g
除点以外的字符和除点以外的字符...[^.]
- 点以外的字符...$
- 就在字符串结尾之前。
- 2 回答
- 0 关注
- 178 浏览
添加回答
举报
0/150
提交
取消