subject.go
1package threading
2
3import (
4 "regexp"
5 "strings"
6)
7
8var subjectPrefixRE = regexp.MustCompile(`(?i)^(Re|Fwd|Fw|AW|WG|Tr|Reé|Resp|SV|VS|RV|ENC|Antw|Odp|R|I)\s*:\s*`)
9
10func canonicalSubject(s string) string {
11 s = strings.TrimSpace(s)
12 for {
13 next := subjectPrefixRE.ReplaceAllString(s, "")
14 if next == s {
15 break
16 }
17 s = strings.TrimSpace(next)
18 }
19 return strings.ToLower(strings.TrimSpace(s))
20}