gpt4 book ai didi

regex - 编译正则表达式时出现 panic

转载 作者:IT王子 更新时间:2023-10-29 01:17:48 26 4
gpt4 key购买 nike

我正在使用以下代码编写用于密码验证的正则表达式:

func IsPasswordValid(value string) bool {
pattern := regexp.MustCompile(`^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).*$`)
return pattern.MatchString(value)
}

当我执行该应用程序时,它会出现困惑:

Line 45: - regexp: Compile(`^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).*$`): error parsing regexp: invalid or unsupported Perl syntax: `(?=` 

此正则表达式适用于 Javascript 和 Ruby,但不适用于 Go。我在这里做错了什么?

最佳答案

来自文档:

The syntax of the regular expressions accepted is the same general syntax used by Perl, Python, and other languages. More precisely, it is the syntax accepted by RE2 and described at http://code.google.com/p/re2/wiki/Syntax, except for \C.

RE2 wiki 明确指出:

(?=re) before text matching re (NOT SUPPORTED)

另见:

编辑:如果您真的需要 PCRE 功能,您可以使用绑定(bind)包,例如https://github.com/tuxychandru/golang-pkg-pcre/ .否则,请尝试重新考虑您的正则表达式及其应匹配的内容。

关于regex - 编译正则表达式时出现 panic ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25159236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com