在regexp包里找到了func (*Regexp) MatchString函数返回的是bool类型
package main
import (
"fmt"
"regexp"
)
func main() {
st := "php"
bds := `php`
re := regexp.MustCompile(bds)
b := re.MatchString(st)
if b {
fmt.Println("匹配")
} else {
fmt.Println("不匹配")
}
}
# 匹配
现在我们开始
bds := `ph+p`//+表示1到多个h
st := "pp"//不匹配
st := "php"//匹配
st := "phhhp"//匹配
bds := `ph*p`//*表示0到多个h
st := "pp"//匹配
st := "php"//匹配
st := "phhhp"//匹配
bds := `ph?p`//?表示0到1个h
st := "pp"//匹配
st := "php"//匹配
st := "phhhp"//不匹配
bds := `p.p`//.表示匹配任意1个字符[换行符除外],注意是1个,多个.就是多个字符
st := "pp"//不匹配
st := "php"//匹配
st := "phhhp"//不匹配
bds := `ph{3}p`//{3}表示有3个h
st := "pp"//不匹配
st := "php"//不匹配
st := "phhhp"//匹配
bds := `ph{3,}p`//{3,}表示有至少3个h
st := "php"//不匹配
st := "phhhp"//匹配
st := "phhhhhp"//匹配
bds := `ph{0,3}p`//{0,3}表示有0到3个h
st := "pp"//匹配
st := "phhhp"//匹配
st := "phhhhhp"//不匹配
bds := `^php`//^表示以php开头
st := "phpa"//匹配
st := "aphp"//不匹配
bds := `php$`//$表示以php结尾
st := "phpa"//不匹配
st := "aphp"//匹配
# 如果写成^php$还不如直接==判断一下
bds := `php|a|b` //|表示只要里面有一个匹配就好了
st := "phpa"//匹配
st := "cpp"//匹配
st := "pp"//不匹配
bds := `(php)+`
//()表示一个单元,可以结合上面的那些符号
//(php)+表示1到多个php
//(php|a)+表示1到多个php或者a
st := "php"//匹配
st := "phpphp"//匹配
st := "pp"//不匹配
bds := `p[a-z]p` //[a-z]匹配任何包含小写字母a-z的1个字符串
st := "php"//匹配
st := "pap"//匹配
st := "pAp"//不匹配
//[A-Z]匹配任何包含大写字母A-Z的1个字符串
//[0-9] 匹配任何包含数字0-9的1个字符串
//[abc] 匹配任何包含小写字母a、b、c 的1个字符串
//[^abc]匹配任何不包含小写字母a、b、c的1个字符串
//[a-zA-Z0-9_]匹配任何包含a-zA-Z0-9和下划线的1个字符串
bds := `php\b` //\b匹配是否到达了单词边界,注意是单词,有个空格就当成一个单词
st := "php"//匹配
st := "phpp"//不匹配
st := "php is a language"//匹配
修饰符
bds := `(?i:php)\b`//i标记表示忽略大小写
st := "PHP is a language"//匹配
st := "php is a language"//匹配
//U标记是非贪婪模式
贪婪模式
st := "phpisaphp"
bds := `(p.+p)`
re := regexp.MustCompile(bds)
result := re.FindAllString(st, -1)
fmt.Println(result)
//结果是[phpisaphp]
非贪婪模式
st := "phpisaphp"
bds := `(?U:p.+p)`
//结果是[php php]