华域联盟 Golang 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

        })

}

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

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

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

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

本文由 华域联盟 原创撰写:华域联盟 » go语言文件正则表达式搜索功能示例

转载请保留出处和原文链接:https://www.cnhackhy.com/110177.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们