Package suffixarray

import "index/suffixarray"
Overview
Index
Examples

Overview ▾

包suffixarray使用内存后缀数组在对数时间内实现子字符串搜索.

使用示例:

// create index for some data
index := suffixarray.New(data)

// lookup byte slice s
offsets1 := index.Lookup(s, -1) // the list of all indices where s occurs in data
offsets2 := index.Lookup(s, 3)  // the list of at most 3 indices where s occurs in data

type Index

索引实现了用于快速子字符串搜索的后缀数组.

type Index struct {
    // contains filtered or unexported fields
}

func New

func New(data []byte) *Index

新建为数据创建新索引. 对于N = len(data),索引创建时间为O(N).

func (*Index) Bytes

func (x *Index) Bytes() []byte

字节返回在其上创建索引的数据. 不得修改.

func (*Index) FindAllIndex

func (x *Index) FindAllIndex(r *regexp.Regexp, n int) (result [][]int)

FindAllIndex返回正则表达式r的非重叠匹配的排序列表,其中匹配是一对索引,指定x.Bytes()的匹配切片. 如果n <0,则以连续顺序返回所有匹配项. 否则,最多返回n个匹配,并且它们可能不是连续的. 如果没有匹配项,或者n == 0,则结​​果为nil.

func (*Index) Lookup

func (x *Index) Lookup(s []byte, n int) (result []int)

查找返回最多n个索引的未排序列表,其中字节串s出现在索引数据中. 如果n <0,则返回所有出现的事件. 如果s为空,找不到s或n == 0,则结​​果为nil.查找时间为O(log(N)* len(s)+ len(result)),其中N是索引数据的大小.

Example

1
3

func (*Index) Read

func (x *Index) Read(r io.Reader) error

读取将索引从r读取到x; x不能为零.

func (*Index) Write

func (x *Index) Write(w io.Writer) error

Write将索引x写入w.

by  ICOPY.SITE