|
- package grsync
-
- import (
- "regexp"
- )
-
- type matcher struct {
- regExp *regexp.Regexp
- }
-
- func (m matcher) Match(data string) bool {
- return m.regExp.Match([]byte(data))
- }
-
- func (m matcher) Extract(data string) string {
- const submatchCount = 1
- matches := m.regExp.FindAllStringSubmatch(data, submatchCount)
- if len(matches) == 0 || len(matches[0]) < 2 {
- return ""
- }
-
- return matches[0][1]
- }
-
- func (m matcher) ExtractAllStringSubmatch(data string, submatchCount int) [][]string {
- return m.regExp.FindAllStringSubmatch(data, submatchCount)
- }
-
- func newMatcher(regExpString string) *matcher {
- return &matcher{
- regExp: regexp.MustCompile(regExpString),
- }
- }
|