github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/core/ranges/regexp.go (about) 1 package ranges 2 3 import ( 4 "regexp" 5 ) 6 7 type rfRegexp struct { 8 rxStart *regexp.Regexp 9 rxEnd *regexp.Regexp 10 } 11 12 func (rf *rfRegexp) Start(b []byte) bool { return rf.rxStart.Match(b) } 13 func (rf *rfRegexp) End(b []byte) bool { return rf.rxEnd.Match(b) } 14 func (rf *rfRegexp) SetLength(_ int) { /* do nothing */ } 15 16 func newRegexp(r *rangeParameters) (err error) { 17 rf := new(rfRegexp) 18 19 rf.rxStart, err = regexp.Compile(r.Start) 20 if err != nil { 21 return err 22 } 23 24 rf.rxEnd, err = regexp.Compile(r.End) 25 if err != nil { 26 return err 27 } 28 29 r.Match = rf 30 31 return nil 32 }