本文實(shí)例講述了go語(yǔ)言文件正則表達(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á)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述對(duì)大家Go語(yǔ)言程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- Go語(yǔ)言中TCP/IP網(wǎng)絡(luò)編程的深入講解
- Go語(yǔ)言正則表達(dá)式用法實(shí)例小結(jié)【查找、匹配、替換等】
- golang使用正則表達(dá)式解析網(wǎng)頁(yè)
- Go語(yǔ)言正則表達(dá)式示例
- golang如何實(shí)現(xiàn)抓取IP地址的蜘蛛程序詳解