谁能解释为什么匹配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 定到搜索文本的开头和结尾,以确保整个搜索文本与该正则表达式匹配。

10-07 19:04
查看更多