当前位置: 移动技术网 > IT编程>脚本编程>Go语言 > go语言文件正则表达式搜索功能示例

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

2017年12月08日  | 移动技术网IT编程  | 我要评论

本文实例讲述了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语言程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网