String Golang确定字符串是否包含字符串(带通配符)
使用Go,如何确定字符串是否包含包含通配符的特定字符串?例如: 我们正在寻找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
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您的注释中的代码没有使用问题中的通配符语法。