我制作了一个程序来验证用户名,但正则表达式会给我编译时 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 链接
最佳答案
使用
^[\\p{L}0-9-_&$.,'\x60()!/ ]*$
作为您的正则表达式,其中包括非 ascii 的“字母”是\p{L} 类,反引号是\x60
关于go - 为什么正则表达式给我 golang 中的编译时 panic 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314083/