Regular Expressions

本文详细介绍了Go语言中正则表达式的使用,包括编译、匹配、查找、替换等操作,并通过实例展示了如何在不同场景下运用正则表达式处理字符串。无论是简单的匹配还是复杂的查找和替换,正则表达式都是Go语言中处理文本的强大工具。
摘要由CSDN通过智能技术生成

声明正则表达式

r, err := regexp.Compile("p([a-z]+)ch")

r = regexp.MustCompile("p([a-z]+)ch")

第二种方法和第一种方法的区别在于,出现错误时,第一种方法返回error,第二种方法panic。

匹配字符串

matched, _ := regexp.MatchString("p([a-z]+)ch", "peach")
fmt.Println(matched)

或者

r, _ := regexp.Compile("p([a-z]+)ch")
fmt.Println(r.MatchString("peach"))

true

查找字符串

r, _ := regexp.Compile("p([a-z]+)ch")
fmt.Println(r.FindString("peach punch"))

peach

查找字符串位置

r, _ := regexp.Compile("p([a-z]+)ch")
fmt.Println("idx:", r.FindStringIndex("peach punch"))

idx: [0 5]

返回值表示,从下标为0的位置,到第5个字符的位置,是查找字符串的位置。

查找字符串和匹配子字符串

r, _ := regexp.Compile("p([a-z]+)ch")
fmt.Println(r.FindStringSubmatch("peach punch"))

[peach ea]

查找字符串位置和匹配子字符串位置

r, _ := regexp.Compile("p([a-z]+)ch")
fmt.Println(r.FindStringSubmatchIndex("peach punch"))

[0 5 1 3]

返回值表示,从下标为0的位置,到第5个字符的位置,是查找字符串的位置;从下标为1的位置,到第3个字符的位置,是匹配子字符串的位置。

查找所有字符串

r, _ := regexp.Compile("p([a-z]+)ch")
fmt.Println(r.FindAllString("peach punch pinch", -1))
fmt.Println(r.FindAllString("peach punch pinch", 2))

[peach punch pinch]
[peach punch]

查找所有字符串位置和匹配所有子字符串位置

r, _ := regexp.Compile("p([a-z]+)ch")
fmt.Println("all:", r.FindAllStringSubmatchIndex("peach punch pinch", -1))

all: [[0 5 1 3] [6 11 7 9] [12 17 13 15]]

匹配字符数组

r, _ := regexp.Compile("p([a-z]+)ch")
fmt.Println(r.Match([]byte("peach")))

true

替换字符串

r, _ := regexp.Compile("p([a-z]+)ch")
fmt.Println(r.ReplaceAllString("a peach", "<fruit>"))

a <fruit>

自定义替换字符串

r, _ := regexp.Compile("p([a-z]+)ch")
in := []byte("a peach")
out := r.ReplaceAllFunc(in, bytes.ToUpper)
fmt.Println(string(out))

a PEACH

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值