zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    jquery 只能输入汉字
    实现鼠标移到某个对象,在旁边显示层。
    jquery 清空页面中radio选项
    oracle 删除表中重复的数据
    jQuery 获取屏幕高度、宽度
    jquery清空from表单中的所有数据
    oracle sql语句大全
    mysql sql语句大全
    Java精品书籍推荐
    小萌库
  • 原文地址:https://www.cnblogs.com/hcy-fly/p/8287375.html
Copyright © 2011-2022 走看看