main.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/dlclark/regexp2"
  5. "regexp"
  6. )
  7. func main() {
  8. //reg := regexp.MustCompile(`([a-z]|[A-Z]|[0-9]){7}`)
  9. //
  10. //a := reg.FindAll([]byte("1111111"),-1)
  11. //b:=reg.FindAll([]byte("2365125489"),-1)
  12. //c:=reg.Find([]byte("dvxd001"))
  13. //
  14. //
  15. //if len(a)!=0 {
  16. // fmt.Println("1",a,len(a))
  17. //}
  18. //if len(b)!=0 {
  19. // fmt.Println("2",b,len(b))
  20. //}
  21. //if len(c)!=0 {
  22. // fmt.Println("3",string(c),len(c))
  23. //}
  24. test4()
  25. }
  26. func test() {
  27. order := "q0"
  28. //expr := `^(?![0-9a-zA-Z]+$(?![a-zA-Z_]+$)(?![0-9_]+$)`
  29. expr := "(?=.*?[a-zA-Z])(?=.*?[0-9])(?=.*?[_])"
  30. //expr :="(?=.*?[a-zA-Z])"
  31. //expr := `^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$`
  32. reg, _ := regexp2.Compile(expr, 0)
  33. match, err := reg.FindStringMatch(order)
  34. if err != nil {
  35. fmt.Println(err.Error())
  36. } else {
  37. fmt.Println(match.Name)
  38. }
  39. }
  40. func test2() {
  41. order := "A_0"
  42. reg := regexp.MustCompile(`^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$`)
  43. fmt.Printf("%q\n", reg.FindAllString(order, -1))
  44. }
  45. func test3() {
  46. order := "Afa_sd"
  47. ok, err := regexp.MatchString("([A-Za-z])+", order)
  48. if !ok || err != nil {
  49. fmt.Println("zzzz")
  50. }
  51. ok, err = regexp.MatchString("([0-9])+", order)
  52. if !ok || err != nil {
  53. fmt.Println("0000")
  54. }
  55. ok, err = regexp.MatchString("([_])+", order)
  56. if !ok || err != nil {
  57. fmt.Println("___")
  58. }
  59. }
  60. func test4() {
  61. url := "/accounts/history"
  62. matched, err := regexp.MatchString("/account|/nft|/tx", url)
  63. if err != nil {
  64. fmt.Print(err.Error())
  65. }
  66. fmt.Println(matched)
  67. matched2, err := regexp.MatchString("/accounts/history|/nft/batch|/tx/queue/info", url)
  68. if err != nil {
  69. fmt.Print(err.Error())
  70. }
  71. fmt.Println(matched2)
  72. fmt.Println(!matched || matched2)
  73. }