亲宝软件园·资讯

展开

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

aotian16 人气:0
想了解go语言文件正则表达式搜索功能示例的相关内容吗,aotian16在本文为您仔细讲解go语言文件正则表达式搜索的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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.softyun.net/regex/javascript

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

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

加载全部内容

相关教程
猜你喜欢
用户评论