欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

go语言文件正则表达式搜索功能示例

程序员文章站 2022-07-05 08:45:51
本文实例讲述了go语言文件正则表达式搜索功能。分享给大家供大家参考,具体如下: 复制代码 代码如下:package main import (   ...

本文实例讲述了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正则表达式在线测试工具:

正则表达式在线生成工具:

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