扩展的正则表达式和现在的正则表达式。匹配字符串不存在?



我想扩展regexp。Regexp,因为它没有快速MatchSuffix或MatchPrefix函数。我像这样扩展它

package regexext
type RegexExt struct {
*regexp.Regexp
Prefix string
Suffix string
}

使用一些简单的函数

func GetRegexExt(expr, prefix, suffix string) *RegexExt {
regex := regexp.MustCompile(expr)
return &RegexExt{
regex,
prefix,
suffix,
}
}
func (f *RegexExt) PrefixMatch(v string) bool {
if f.Suffix != "" {
if !strings.HasSuffix(v, f.Suffix) {
return false
}
}
}
func (f *RegexExt) SuffixMatch(v string) bool {
if f.Prefix != "" {
if !strings.HasPrefix(v, f.Prefix) {
return false
}
}
}

,但现在在我的代码的其他地方,我尝试使用regexp。它说它是未定义的。为什么?是否有更好的方法来扩展正则表达式结构?

编辑:我是如何使用regexp。里面有

package somethingelse
import "regexp"
func SimpleMatch(s, v string) {
... some parsing ...
if regexp.MatchString(s, v) {
// Do something if match
}
}

这只是一个例子,因为它是一个共享包但即使是我的依赖项,比如MatchString not declared by package regexp

原来我的go安装被损坏了。重新安装Go修复了这个问题

最新更新