Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

glob.go 592B

123456789101112131415161718192021222324252627282930
  1. // Copyright (c) 2020 Shivaram Lingamneni <slingamn@cs.stanford.edu>
  2. // released under the MIT license
  3. package utils
  4. import (
  5. "bytes"
  6. "regexp"
  7. "strings"
  8. )
  9. // yet another glob implementation in Go
  10. func CompileGlob(glob string) (result *regexp.Regexp, err error) {
  11. var buf bytes.Buffer
  12. buf.WriteByte('^')
  13. for {
  14. i := strings.IndexByte(glob, '*')
  15. if i == -1 {
  16. buf.WriteString(regexp.QuoteMeta(glob))
  17. break
  18. } else {
  19. buf.WriteString(regexp.QuoteMeta(glob[:i]))
  20. buf.WriteString(".*")
  21. glob = glob[i+1:]
  22. }
  23. }
  24. buf.WriteByte('$')
  25. return regexp.Compile(buf.String())
  26. }