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语言程序设计有所帮助。