Golang index.suffixarray.FindAllIndex() function example

package index/suffixarray

Golang index.suffixarray.FindAllIndex() function usage example

 package main

 import (
 "fmt"
 "index/suffixarray"
 "os"
 "regexp"
 "strings"
 )

 func main() {

 str := []string{"yum", "tasty", "taste good", "delicious", "sumptuous", "lavish", "palatable", "pleasant"}

 strByte := "\x00" + strings.Join(str, "\x00")

 index := suffixarray.New([]byte(strByte))

 // list all with taste

 match, err := regexp.Compile("\x00tas[^\x00]*")

 if err != nil {
 fmt.Println(err)
 os.Exit(1)
 }

 result := index.FindAllIndex(match, -1) // <------- here!
 // -1 = list all
 // see http://golang.org/pkg/index/suffixarray/#Index.FindAllIndex

 for _, val := range result {
 start, end := val[0], val[1]
 fmt.Println(strByte[start+1 : end])
 }

 }

Reference :

http://golang.org/pkg/index/suffixarray/#Index.FindAllIndex

Advertisement