为什么正则表达式会在golang中给我编译时出现恐慌错误?

时间:2018-11-15 07:06:20

标签: go

我制作了一个用于验证用户名的程序,但是regexp会给我带来编译时的错误信息,为什么会发生这种错误以及如何在下面解决它是我正在使用的程序:-

package main

import (
  "fmt"
  "regexp"
)

func main() {
  var arr [5]string
  arr[0] = "O’max"
  arr[1] = "O’sdf"
  arr[2] = "dsf’max"
  arr[3] = "dsfrewwerx"
  arr[4] = "ewrwerwerwerwr’max"
  var validName = regexp.MustCompile("^[a-zA-ZÀ-ž\x7f-\xff\u00c0-\u017e0-9-_&$.,'`()!/ ]*$")
  for i := 0; i < len(arr); i++ {
    if !validName.MatchString(arr[i]) {
        fmt.Println(arr[i])
    }
  }
}

错误

  

panic:regexp:Compile(“ ^ [a-zA-ZÀ-ž\ u007f- \xffÀ-ž0-9-&$。,'()!/ ]*$"): error parsing regexp: invalid UTF-8:。À-ž0-9-< / em>&$。,'()!/ ]*$

任何人都告诉我,我将如何验证下面的用户名,这是游乐场链接

Playground

1 个答案:

答案 0 :(得分:2)

使用

onSignalStrengthsChanged()

作为您的正则表达式,其中包含非ascii的“字母”为\ p {L}类,反引号为\ x60