任何人都可以解释为什么这匹配play?
来源:
package main
import "fmt"
import "regexp"
func main() {
match, _ := regexp.MatchString("[a-z]+", "test?")
fmt.Printf("the result of match: %v", match)
}
golang的regexp.MatchString
是否完全匹配?我无法理解,我是golang的新手
答案 0 :(得分:2)
正则表达式“[a-z] +”将匹配“test”是搜索文本“test?” 同样,它将匹配“测试测试”,“2001 a 空间oddessy”等。
Go lang的regexp package根据正则表达式的语法和含义匹配搜索文本。没有本身尝试将正则表达式与整个搜索文本匹配的方法,如果不能,则放弃,除非正则表达式定义了整个搜索文本匹配是必需的行为。
正则表达式的语法确实能够匹配整个搜索文本。
'^',正则表达式开头的起始锚符号强制匹配包含搜索文本的开头。
'$',正则表达式末尾的结束锚符号强制匹配包含搜索文本的结尾。
它们在正则表达式中的其他位置具有不同的含义。
正如@TomCooper评论的那样,在正在寻找的正则表达式模式周围使用开始和结束锚点。这些将封闭的正则表达式锚定到搜索文本的开头和结尾,以确保整个搜索文本与正则表达式匹配。