在go语言中用filepath.Match()函数以通配符模式匹配字符串示例

2023-06-01 00:00:00 示例 通配符 中用

在go语言项目中实现类似Linux/Unix shells中常用的通配符模式来匹配字符串,

比如:*.go或*data[0-9]*。


示例代码:

package main

 import (
         "fmt"
         "path/filepath"
 )
 
 func main() {
         filename := "start.txt"
         pattern := "*art*"
         matched, err := filepath.Match(pattern, filename)
         if err != nil {
                 fmt.Println(err)
         }
         fmt.Println(matched)
         
         //---------------------------------
         
         pattern = "*fart*"
         matched, err = filepath.Match(pattern, filename)
         if err != nil {
                 fmt.Println(err)
         }
         fmt.Println(matched)
         
         //---------------------------------
         
         filename = "data123.csv"
         pattern = "data[0-9]*"
         matched, err = filepath.Match(pattern, filename)
         if err != nil {
                 fmt.Println(err)
         }
         fmt.Println(matched)
 }

输出 :

true
false
true


注意

这个例子是用来匹配字符串的。对于当前或特定目录下的文件名。

如果你用path.Match()代替filepath.Match(),应该也能实现功能,有兴趣的你可以测一下。

相关文章