regex_funpark.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package main
  2. import (
  3. "fmt"
  4. "strings"
  5. )
  6. // ParseChat Parses a string, returns the payload of the chat
  7. func ParseChat(chatline string) (LineDate string, LineTime string, LineUser string, LinePayload []string) {
  8. words := strings.Fields(chatline)
  9. //fmt.Println(len(words))
  10. //var LineDate string
  11. //var LineTime string
  12. //var LineUser string
  13. //var LinePayload []string
  14. var SplitFound int
  15. for i := range words {
  16. if i == 1 {
  17. LineDate = words[i]
  18. }
  19. if i == 2 {
  20. LineTime = words[i]
  21. }
  22. if i >= 5 && SplitFound == 1 {
  23. LinePayload = append(LinePayload, words[i])
  24. }
  25. if words[i] == ">" {
  26. SplitFound = 1
  27. }
  28. if i >= 4 && SplitFound == 0 {
  29. if LineUser == "" {
  30. LineUser = words[i]
  31. } else {
  32. LineUser = LineUser + " " + words[i]
  33. }
  34. }
  35. }
  36. //fmt.Println(LineDate)
  37. //fmt.Println(LineTime)
  38. //fmt.Println(LineUser)
  39. //fmt.Println(LinePayload)
  40. return
  41. }
  42. func main() {
  43. mystring := "��[ 2022.02.07 19:57:52 ] Samoa Serine > BY-7PY Morretus Isayeki nv"
  44. LineDate, LineTime, LineUser, Payload := ParseChat(mystring)
  45. fmt.Println("On " + LineDate + " " + LineTime + " " + LineUser + " posted the following: ")
  46. fmt.Println(Payload)
  47. }