String Golang确定字符串是否包含字符串(带通配符)

String Golang确定字符串是否包含字符串(带通配符),string,go,search,wildcard,String,Go,Search,Wildcard,使用Go,如何确定字符串是否包含包含通配符的特定字符串?例如: 我们正在寻找t*e*s*t(*)可以是任意字符和任意长度的字符 Input True:ttttt eeeeeeee sttttttt Input False:tset通过将模式中的*转换为正则表达式的*来使用包 // wildCardToRegexp converts a wildcard pattern to a regular expression pattern. func wildCardToRegexp(pattern s

使用Go,如何确定字符串是否包含包含通配符的特定字符串?例如:

我们正在寻找
t*e*s*t
(*)可以是任意字符和任意长度的字符

Input True:ttttt eeeeeeee sttttttt

Input False:tset

通过将模式中的
*
转换为正则表达式的
*
来使用包

// wildCardToRegexp converts a wildcard pattern to a regular expression pattern.
func wildCardToRegexp(pattern string) string {
    var result strings.Builder
    for i, literal := range strings.Split(pattern, "*") {

        // Replace * with .*
        if i > 0 {
            result.WriteString(".*")
        }

        // Quote any regular expression meta characters in the
        // literal text.
        result.WriteString(regexp.QuoteMeta(literal))
    }
    return result.String()
}
像这样使用它:

func match(pattern string, value string) bool {
    result, _ := regexp.MatchString(wildCardToRegexp(pattern), value)
    return result
}

.

使用正则表达式-但是如果您真的想要全局样式的通配符,请使用这样一个全局库:更新了文章的格式。谢谢。看来这样做的诀窍是:`package main import(“fmt”“regexp”)func main(){matched,err:=regexp.MatchString(
*t.*e.*s.*t.
,,“tttteeeessssstttttt”)fmt.Println(matched,err)matched,err=regexp.MatchString(
*t.*e.*s.*t.*
,“tset”)fmt.Println(matched,err)}@user3486527您的注释中的代码没有使用问题中的通配符语法。