判断一个字符串是否满足一个正则表达式数组的任一一个表达式(Golang)

代码如下:

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "regexp"
 6 )
 7 
 8 // 判断str是否与白名单中的正则表达式匹配
 9 func generateMatch(whiteList []string) func(string) bool {
10     // 为没一个白名单链接生成一个缓存的正则表达式匹配选项
11     var regeWhiteList = make([]*regexp.Regexp, len(whiteList))
12     // 生成正则表达式匹配器
13     for i := range whiteList {
14         reg, _ := regexp.Compile(whiteList[i])
15         regeWhiteList[i] = reg
16     }
17 
18     return func(str string) bool {
19         // 遍历正则表达式匹配器,判断是否匹配
20         for i := range regeWhiteList {
21             if regeWhiteList[i].MatchString(str) {
22                 return true
23             }
24         }
25         return false
26     }
27 }
28 
29 
30 func main() {
31     match := generateMatch([]string{"[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}"})
32     fmt.Println(match("331b960f-e7f8-4986-b6eb-86226e1623a7"))
33 }

 

posted @ 2020-11-10 16:03  路璐  阅读(531)  评论(0编辑  收藏  举报