下面是過濾掉所有非 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 項目設置“監(jiān)視和重新加載”任務。另外我假設文件或文件夾名稱沒有空格。
2 回答

炎炎設計
TA貢獻1808條經(jīng)驗 獲得超4個贊
得到了問題。它似乎[:graph:]
不是\S
擴展 posix 中非空格字符的類標識符。下面是好去。
^[[:graph:]]*[^.][^g][^o]$|^[[:graph:]]{1,2}$|^[[:graph:]]*.[^g].$|^[[:graph:]]*..[^o]$|^[[:graph:]]*[^.]..$
甚至來自 stribizhev 評論的更好的 [^.][^g][^o]$|^..$|.[^g].$|..[^o]$|[^.]..$

FFIVE
TA貢獻1797條經(jīng)驗 獲得超6個贊
您可以使用
\.[^.][^.][^.]+$|\.[^.][^o]$|\.[^g][^.]$|\.[^.]$
看演示
或者,如果您可以分組:
\.([^.][^.][^.]+|[^.][^o]|[^g][^.]|[^.])$
看演示
見解釋:
\.
- 一個文字點([^.][^.][^.]+|[^.][^o]|[^g][^.]|[^.])
- 一組替代方案:[^.][^.][^.]+
- 2 個字符以外的字符.
和 1 個或多個字符以外的字符.
...[^.][^o]
- 除點以外的字符和除o
...以外的字符[^g][^.]
-g
除點以外的字符和除點以外的字符...[^.]
- 點以外的字符...$
- 就在字符串結尾之前。
- 2 回答
- 0 關注
- 215 瀏覽
添加回答
舉報
0/150
提交
取消