go语言里有几个常用的正则操作函数:
1、正则编译:Compile()
2、是否匹配:MatchString()
3、查找匹配字符串:FindString()
4、查找子匹配:FindStringSubmatch()
5、查找所有的字符串:FindAllString()
6、字符串替换:ReplaceAllString()
7、用函数返回值来替换:ReplaceAllStringFunc()
下面是一个例子:
package main
import (
"fmt"
"regexp"
)
func main() {
r, _ := regexp.Compile(`a(.*?)z`)
fmt.Println(r.MatchString("123abcdddde3z2"))
fmt.Println(r.FindString("123abcdddde3z2"))
fmt.Println(r.FindStringSubmatch("123abcdddde3z2"))
fmt.Println(r.FindAllString("123abcdddde3z2abc11z", -1))
fmt.Println(r.ReplaceAllString("123abcdddde3z2abc11z", "-"))
ret := r.ReplaceAllStringFunc("123abcdddde3z2abc11z",
func(b string) string {
tmp := "[" + b + "]"
return tmp
})
fmt.Println(ret)
}
正则也可以不编译,即时使用,用regexp.
开头,第一个参数是正则。
matched = regexp.MatchString(`abc.*z`, "123abcdddde3z2")
fmt.Println(matched)
参考资料: