go語言文件正則表達式搜索功能示例
更新時間:2017年01月18日 11:59:49 作者:aotian16
這篇文章主要介紹了go語言文件正則表達式搜索功能,涉及Go語言文件目錄的遍歷及正則操作相關(guān)技巧,需要的朋友可以參考下
本文實例講述了go語言文件正則表達式搜索功能。分享給大家供大家參考,具體如下:
復(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
})
}
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款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述對大家Go語言程序設(shè)計有所幫助。
相關(guān)文章
Go語言中常量和變量的定義、使用規(guī)范及常見應(yīng)用場景
每一門語言都會有常量的定義,變量的定義,以及基于這些定義的運算,下面這篇文章主要給大家介紹了關(guān)于Go語言中常量和變量的定義、使用規(guī)范及常見應(yīng)用場景的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-06-06Go語言繼承功能使用結(jié)構(gòu)體實現(xiàn)代碼重用
今天我來給大家介紹一下在?Go?語言中如何實現(xiàn)類似于繼承的功能,讓我們的代碼更加簡潔和可重用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01使用Go語言創(chuàng)建靜態(tài)文件服務(wù)器問題
這篇文章主要介紹了使用Go語言創(chuàng)建靜態(tài)文件服務(wù)器,本文通過試了代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03