本文整理汇总了Golang中regexp.Regexp.FindAllSubmatch方法的典型用法代码示例。如果您正苦于以下问题:Golang Regexp.FindAllSubmatch方法的具体用法?Golang Regexp.FindAllSubmatch怎么用?Golang Regexp.FindAllSubmatch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类regexp.Regexp
的用法示例。
在下文中一共展示了Regexp.FindAllSubmatch方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RegexpFilter
func RegexpFilter(filterReg *regexp.Regexp, data []byte) (outdata []byte) {
if nil == filterReg {
return data
}
matches := filterReg.FindAllSubmatch(data, -1)
if nil == matches {
log.Printf("[ERROR] failed to match filter regex, pattern %s did not match", filterReg.String())
if *gDebug {
log.Println("======= debug: target data =======")
log.Println(string(data))
log.Println("==============")
}
return nil
}
for _, match := range matches {
for patInd, patName := range filterReg.SubexpNames() {
switch patName {
case PATTERN_FILTER:
outdata = append(outdata, match[patInd]...)
}
}
}
if *gDebug {
log.Println("======= debug: filter regex ========")
log.Println(filterReg.String())
log.Println("======= debug: filtered data =======")
log.Println(string(outdata))
log.Println("==============")
}
return
}
示例2: log
func log(title string, regex *regexp.Regexp, val string) {
if _, file, line, ok := runtime.Caller(2); ok {
if data, err := ioutil.ReadFile(file); err == nil {
// Truncate file name at last file name separator.
if index := strings.LastIndex(file, "/"); index >= 0 {
file = file[index+1:]
} else if index = strings.LastIndex(file, "\\"); index >= 0 {
file = file[index+1:]
}
lines := bytes.Split(data, []byte{'\n'})
cond := regex.FindAllSubmatch(lines[line-1], 1)
if len(cond) > 0 && len(cond[0]) > 1 {
if val == "" {
fmt.Fprintf(os.Stderr, "\t%s %s:%d: %s\n", title, file, line, cond[0][1])
} else {
fmt.Fprintf(os.Stderr, "\t%s %s:%d: %s: %s\n", title, file, line, cond[0][1], val)
}
}
}
}
}
示例3: getRegIncl
// Получает список подключаемых файлов по регулярному выражению.
func getRegIncl(path string, exp *regexp.Regexp) []string {
f, err := os.OpenFile(path, os.O_RDONLY, 0)
if err != nil {
panic(err)
}
defer f.Close()
b, err := ioutil.ReadAll(f)
if err != nil {
panic(err)
}
inclBytes := exp.FindAllSubmatch(b, -1)
ret := make([]string, len(inclBytes))
for i, _ := range inclBytes {
ret[i] = string(inclBytes[i][1])
}
return ret
}