(原文地址:https://blog.gm7.org/%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E5%BA%93/03.%E7%BC%96%E7%A8%8B%E5%BC%80%E5%8F%91/GO/02.GO%E5%B8%B8%E7%94%A8%E5%AE%9E%E4%BE%8B.html)
匹配内容是否存在
package main
import (
"fmt"
"regexp"
)
func main() {
re := "\\d{1,9}" //定义规则,匹配数字1到9
data := "aaa5555597874433121684515345aaaaa"
re1, _ := regexp.MatchString(re, data)
fmt.Println(re1) //true
}
提取内容
package main
import (
"fmt"
"regexp"
)
func main() {
re, _ := regexp.Compile("(\\d{1,3})\\d{6,8}") //定义规则,匹配数字1到3,并且连接着数字6到8
data := "123131654852079846598465132489651328465132468513246513248651348651"
fmt.Println(re.MatchString(data)) //true,返回布尔型,判断是否存在
fmt.Println(re.FindString(data)) //12313165485,匹配第一个匹配到的结果
fmt.Println(re.FindStringIndex(data)) //[0 11],匹配第一个匹配到的结果的开始和结束索引
fmt.Println(re.FindStringSubmatch(data)) //[12313165485 123] 返回包括了()子匹配的结果
fmt.Println(re.FindAllString(data, -1)) //返回匹配的所有内容,第二个参数是返回个数,-1代表全部
fmt.Println(re.FindAllStringSubmatch(data, -1)) //同时返回子匹配的结果
fmt.Println(re.FindAll([]byte(data), -1)) //按字节匹配,返回结果也是字节
}
替换内容
package main
import (
"fmt"
"regexp"
)
func main() {
re, _ := regexp.Compile("\\d{1,3}")
data := "1212312313899078777bbbbbbbbbbbbbbbb"
fmt.Println(re.ReplaceAllString(data, "a")) //aaaaaaabbbbbbbbbbbbbbbb
}