谁能解释为什么匹配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的新手 最佳答案
正则表达式“[a-z] +”将匹配“test”,即搜索文本“test?”。
同样,它将匹配“测试测试”,“2001 和空间奇怪”等。
Go lang的regexp package根据正则表达式的语法和含义匹配搜索文本。没有一种方法本身会尝试将正则表达式与整个搜索文本匹配,如果无法匹配,则会放弃,除非正则表达式定义了整个搜索文本匹配是必需的行为。
正则表达式的语法确实可以匹配整个搜索文本。
'^',正则表达式开始处的开始 anchor 符号会强制匹配包含搜索文本的开始。
'$',正则表达式末尾的结束 anchor 符号会强制匹配包含搜索文本的末尾。
它们在正则表达式中的其他位置具有不同的含义。
正如@TomCooper所评论的,请在要查找的正则表达式模式周围使用开始和结束 anchor 。这些将附带的正则表达式 anchor 定到搜索文本的开头和结尾,以确保整个搜索文本与该正则表达式匹配。