本文实例讲述了go语言文件正则表达式搜索功能。分享给大家供大家参考,具体如下:
package main
import (
"fmt"
"os"
"path/filepath"
"regexp"
)
func main() {
// 命令行参数
args := os.args
// 检查参数
if len(args) == 1 {
fmt.println("ff is a file find tool. use like bottom")
fmt.println("ff [dir] [regexp]")
return
}
if len(args) < 3 {
fmt.println("args < 3")
return
}
filename := args[1]
pattern := args[2]
file, err := os.open(filename)
if err != nil {
fmt.println(err)
return
}
fi, err := file.stat()
if err != nil {
fmt.println(err)
return
}
if !fi.isdir() {
fmt.println(filename, " is not a dir")
}
reg, err := regexp.compile(pattern)
if err != nil {
fmt.println(err)
return
}
// 遍历目录
filepath.walk(filename,
func(path string, f os.fileinfo, err error) error {
if err != nil {
fmt.println(err)
return err
}
if f.isdir() {
return nil
}
// 匹配目录
matched := reg.matchstring(f.name())
if matched {
fmt.println(path)
}
return nil
})
}
ps:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
javascript正则表达式在线测试工具:
正则表达式在线生成工具:
希望本文所述对大家go语言程序设计有所帮助。
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
-
-
Go打包二进制文件的实现
背景众所周知,go语言可打包成目标平台二进制文件是其一大优势,如此go项目在服务器不需要配置go环境和依赖就可跑起来。操作需求:打包部署到centos7笔者打包...
[阅读全文]
-
-
-
-
golang语言编码规范的实现
本规范旨在为日常go项目开发提供一个代码的规范指导,方便团队形成一个统一的代码风格,提高代码的可读性,规范性和统一性。本规范将从命名规范,注释规范,代码风格和 ...
[阅读全文]
-
-
-
网友评论