这里有新鲜出炉的 GO 语言教程,程序狗速度看过来!
Go 是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。Go 是谷歌 2009 年发布的第二款编程语言。2009 年 7 月份,谷歌曾发布了 Simple 语言,它是用来开发 Android 应用的一种 BASIC 语言。
这篇文章主要介绍了 go 语言文件正则表达式搜索功能, 涉及 Go 语言文件目录的遍历及正则操作相关技巧, 需要的朋友可以参考下
本文实例讲述了 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
- })
- }
希望本文所述对大家 Go 语言程序设计有所帮助。
来源: http://www.phperz.com/article/17/0720/320203.html