为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
明月笑刀无情 2021-11-01 16:49:59
下面是过滤掉所有非 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]$|[^.]..$


查看完整回答
反对 回复 2021-11-01
?
FFIVE

TA贡献1797条经验 获得超6个赞

您可以使用

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

演示

或者,如果您可以分组:

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

演示

见解释:

  • \. - 一个文字点

  • ([^.][^.][^.]+|[^.][^o]|[^g][^.]|[^.]) - 一组替代方案:

    • [^.][^.][^.]+- 2 个字符以外的字符.和 1 个或多个字符以外的字符....

    • [^.][^o]- 除点以外的字符和除o...以外的字符

    • [^g][^.]-g除点以外的字符和除点以外的字符...

    • [^.] - 点以外的字符...

  • $ - 就在字符串结尾之前。


查看完整回答
反对 回复 2021-11-01
  • 2 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信