我正在try 基于以下三个条件验证字符串
- 它必须包含一个字符串
- 它不应包含除
.
和-
之外的任何特殊字符. - 数字是允许的,但不是必需的
我在Hit and Trial的帮助下形成了这个正则表达式^(?=.*[a-zA-Z])[a-zA-Z0-9\.\- ]*$
.它可以在所有可供测试的在线工具中使用.但是我不能在代码中使用它
package main
import (
"fmt"
"regexp"
)
func main() {
rule := regexp.MustCompile(`^(?=.*[a-zA-Z])[a-zA-Z0-9\.\- ]*$`).MatchString
fmt.Println(rule("test_string"))
}
错误显示
panic: regexp: Compile(`^(?=.*[a-zA-Z])[a-zA-Z0-9\.\- ]*$`): error parsing regexp: invalid or unsupported Perl syntax: `(?=`
即使它在其他在线工具中也可以使用.我怎么才能解决这个问题呢?