| 1234567891011121314151617181920212223242526272829303132 |
- package match
- import (
- "github.com/Jinnrry/pmail/dto/parsemail"
- "github.com/Jinnrry/pmail/utils/context"
- "github.com/dlclark/regexp2"
- log "github.com/sirupsen/logrus"
- )
- type RegexMatch struct {
- Rule string
- Field string
- }
- func NewRegexMatch(field, rule string) *RegexMatch {
- return &RegexMatch{
- Rule: rule,
- Field: field,
- }
- }
- func (r *RegexMatch) Match(ctx *context.Context, email *parsemail.Email) bool {
- content := getFieldContent(r.Field, email)
- re := regexp2.MustCompile(r.Rule, 0)
- match, err := re.MatchString(content)
- if err != nil {
- log.WithContext(ctx).Errorf("rule regex error %v", err)
- }
- return match
- }
|