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
        })
}

站在用户的角度思考问题,与客户深入沟通,找到汕尾网站设计与汕尾网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、做网站、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广、域名申请、虚拟空间、企业邮箱。业务覆盖汕尾地区。

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述对大家Go语言程序设计有所帮助。


文章名称:go语言文件正则表达式搜索功能示例
文章地址:http://ybzwz.com/article/jhjecj.html