go - 为什么正则表达式给我 golang 中的编译时 panic 错误?

标签 go

我制作了一个程序来验证用户名,但正则表达式会给我编译时 panic 错误,为什么会这样以及如何解决下面是我正在使用的程序:-

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-&$.,'()!/ ]*$

任何人告诉我我将如何制作一个正则表达式来验证下面的用户名是 Playground 链接

Playground

最佳答案

使用

^[\\p{L}0-9-_&$.,'\x60()!/ ]*$

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

关于go - 为什么正则表达式给我 golang 中的编译时 panic 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314083/

相关文章:

docker - 如何在使用 Docker Compose 的同时高效地重建 go 项目?

linux - 运行docker容器包含golang项目的问题

go - minio客户端(GO SDK)API调用不起作用

bash - 从字符串拆分数组在bash中不起作用

json - Go:解码 JSON 嵌套对象数组

arrays - 在 Go 中通过 Mmap 将数组映射到文件

go - 使用路径式 amazon aws sdk go

json - 读取外部 JSON 文件

go - 模拟非接口(interface)函数

http - 对 Go 的 http2 实现的困惑