Go正则表达式匹配字符串,替换字符串
正则表达式
- package main
- import (
- "fmt"
- "regexp"
- )
- func main() {
- match, err := regexp.MatchString("h[a-z]+.*d$", "hello world")
- if err != nil {
- panic(err)
- }
- fmt.Println(match)
- match, err = regexp.MatchString("h[a-z]+.*d$", "ello world")
- if err != nil {
- panic(err)
- }
- fmt.Println(match)
- }
- // $ go run main.go
- // 输出如下
- /**
- true
- false
- */
复制代码 匹配所有子字符串
- package main
- import (
- "fmt"
- "regexp"
- )
- func main() {
- c, err := regexp.Compile("h[a-z]")
- if err != nil {
- panic(err)
- }
- res := c.FindAllString("hello world", -1)
- fmt.Printf("res = %v\n", res)
- res2 := c.FindAllString("hello world hi ha h1", -1)
- fmt.Printf("res2 = %v\n", res2)
- }
- // $ go run main.go
- // 输出如下
- /**
- res = [he]
- res2 = [he hi ha]
- */
复制代码 替换所有子字符串
- package main
- import (
- "fmt"
- "regexp"
- )
- func main() {
- c, err := regexp.Compile("h[a-z]")
- if err != nil {
- panic(err)
- }
- res := c.ReplaceAll([]byte("hello world"), []byte("?"))
- fmt.Printf("res = %s\n", res)
- res2 := c.ReplaceAll([]byte("hello world hi ha h1"), []byte("?"))
- fmt.Printf("res2 = %s\n", res2)
- }
- // $ go run main.go
- // 输出如下
- /**
- res = ?llo world
- res2 = ?llo world ? ? h1
- */
复制代码 匹配中文
- package main
- import (
- "fmt"
- "regexp"
- )
- func main() {
- match, err := regexp.MatchString("\\x{4e00}-\\x{9fa5}", "hello world")
- if err != nil {
- panic(err)
- }
- fmt.Println(match)
- match, err = regexp.MatchString("\\p{Han}+", "hello 世界")
- if err != nil {
- panic(err)
- }
- fmt.Println(match)
- }
- // $ go run main.go
- // 输出如下
- /**
- false
- true
- */
复制代码 总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持晓枫资讯。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |