go regexp 正则表达式使用

  • go 正则表达式使用:
/**
* @Author: wsp
* @Date: 2018/1/15 10:58
* @Description:
 */
package regexpStudy

import (
    "bytes"
    "fmt"
    "regexp"
)

func RegexpStudy1() {
    var result interface{}
    var err error
    result, err = regexp.MatchString("w[0-9]*sp", "wsp")
    ErrHandler(err)
    fmt.Println("匹配结果:", result)
}

func RegexpStudy2() {
    r, err := regexp.Compile("u([a-z]+)ledger")
    ErrHandler(err)
    // 判断是否匹配
    fmt.Println(r.MatchString("uniledger"))

    // 匹配第一次出现的字符串
    fmt.Println(r.FindString("uniledger uwspledger"))

    // 匹配第一次出现的字符串开始及结束索引
    fmt.Println(r.FindStringIndex("uniledger uwspledger"))

    // 返回第一次匹配的字符串,全局匹配及局部匹配的内容
    fmt.Println(r.FindStringSubmatch("uniledger uwspledger"))

    // 返回第一次匹配的字符串,全局匹配及局部匹配的内容的开始及结束的索引
    fmt.Println(r.FindStringSubmatchIndex("uniledger uwspledger"))

    // 返回字符串所有匹配的内容,不仅仅首次匹配项 n<0 返回所有匹配项,n>0 返回n个匹配项
    fmt.Println(r.FindAllString("uniledger uwspledger uniledger uwspledger", -1))

    // 返回字符串所有匹配的内容,不仅仅首次匹配项 n<0 返回所有匹配项,n>0 返回n个匹配项的索引
    fmt.Println(r.FindAllStringIndex("uniledger uwspledger uniledger uwspledger", -1))

    // 返回[]byte数组所有匹配的内容,不仅仅首次匹配项 n<0 返回所有匹配项,n>0 返回n个匹配项的索引
    fmt.Println(r.FindAllIndex([]byte("uniledger uwspledger uniledger uwspledger"), -1))

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

    // 替换匹配的字符串的内容
    fmt.Println(r.ReplaceAllString("a peach", "<fruit>"))

    // 将匹配的元素 传递给一个函数
    in := []byte("a peach")
    out := r.ReplaceAllFunc(in, bytes.ToUpper)
    fmt.Println(string(out))

}

/**
* @Author: wsp
* @Date: 10:27 2018/1/12
* @Description: 错误处理
 */
func ErrHandler(err error) {
    if err != nil {
        panic(err)
    }
}
  • 测试文件
/**
* @Author: wsp
* @Date: 2018/1/15 10:58
* @Description:
 */
package regexpStudy

import "testing"

func TestRegexpStudy1(t *testing.T) {
    RegexpStudy1()
}

func TestRegexpStudy2(t *testing.T) {
    RegexpStudy2()
}
  • 测试结果
true
punch
[0 5]
[punch un]
[0 5 1 3]
[peach punch pinch]
[[0 5] [6 11] [12 17]]
[[0 5] [6 11] [12 17]]
p([a-z]+)ch
a <fruit>
a PEACH

 

转载于:https://www.cnblogs.com/hcy-fly/p/8287375.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值