现在有100个正则放在数组里做文件内容的匹配,现在的写法是在 遍历文件时(很多,几千个文件),每次匹配之前 都编译了一遍,导致运行的时候 cpu 容易暴增到100。 挺费性能的 。现在想法是 能不能先把这些正则 都使用regexp.Compile 编译好,每次匹配文件内容的时候 就不需要再匹配了,直接reg.Find就好了。 求指导。
下图中 是现在的渣渣代码, rule是一个有100个正则的数组。
![111.jpg](https://static.studygolang.com/171115/3341eb6fc383488cd2835dad38597d3f.jpg)
简单来说就是
```golang
var (
regexes []*regexp.Regexp
strs []string
)
func init(){
for _,v:=range strs{
regexes = append(regexes, regexp.MustCompile(v))
}
}
```
#7
更多评论