go语言文件正则表达式搜索功能示例
本文实例讲述了go语言文件正则表达式搜索功能。分享给大家供大家参考,具体如下:
packagemain import( "fmt" "os" "path/filepath" "regexp" ) funcmain(){ //命令行参数 args:=os.Args //检查参数 iflen(args)==1{ fmt.Println("ffisafilefindtool.uselikebottom") fmt.Println("ff[dir][regexp]") return } iflen(args)<3{ fmt.Println("args<3") return } fileName:=args[1] pattern:=args[2] file,err:=os.Open(fileName) iferr!=nil{ fmt.Println(err) return } fi,err:=file.Stat() iferr!=nil{ fmt.Println(err) return } if!fi.IsDir(){ fmt.Println(fileName,"isnotadir") } reg,err:=regexp.Compile(pattern) iferr!=nil{ fmt.Println(err) return } //遍历目录 filepath.Walk(fileName, func(pathstring,fos.FileInfo,errerror)error{ iferr!=nil{ fmt.Println(err) returnerr } iff.IsDir(){ returnnil } //匹配目录 matched:=reg.MatchString(f.Name()) ifmatched{ fmt.Println(path) } returnnil }) }
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述对大家Go语言程序设计有所帮助。