溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

go語言文件正則表達(dá)式搜索功能示例

發(fā)布時(shí)間:2020-09-20 15:51:48 來源:腳本之家 閱讀:359 作者:aotian16 欄目:編程語言

本文實(shí)例講述了go語言文件正則表達(dá)式搜索功能。分享給大家供大家參考,具體如下:

復(fù)制代碼 代碼如下:
package main
import (
    "fmt"
    "os"
    "path/filepath"
    "regexp"
)
func main() {
    // 命令行參數(shù)
    args := os.Args
    // 檢查參數(shù)
    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款非常方便的正則表達(dá)式工具供大家參考使用:

JavaScript正則表達(dá)式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述對(duì)大家Go語言程序設(shè)計(jì)有所幫助。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI