go语言之正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言之正则表达式相关的知识,希望对你有一定的参考价值。

go语言之正则表达式

//regexp
package main

import (
    "fmt"
    "regexp"
)

func main()  {
    //需要匹配的模式
    //reg := regexp.MustCompile("\w+") 正则表达式中的需要转义
    reg := regexp.MustCompile(`^z.*1$`)
    //返回匹配到的结果
    result := reg.FindAllString("zhangsan1", -1)
    fmt.Printf("%v
", result)

    //演示一个匹配不到的例子
    reg1 := regexp.MustCompile(`^z(.*)1$`)
    result1 := reg1.FindAllString("zhangsand", -1)
    fmt.Printf("%v
", result1)

    reg2 := regexp.MustCompile(`^z(.{1})(.{1})(.*)1$`)
    result2 := reg2.FindAllString("zhangsan1", -1)
    fmt.Printf("%v
", result2)
}

// simple_crawler
package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "regexp"
)

func main() {
    url := "https://movie.douban.com/subject/24751763/"
    resp, err := http.Get(url)
    if err != nil {
        panic(err)
    }

    defer resp.Body.Close()

    shtml, _ := ioutil.ReadAll(resp.Body)

    reg := regexp.MustCompile(`<spans*property="v:itemreviewed">(.*)</span>`)
    result := reg.FindAllStringSubmatch(string(sHtml), -1)

    fmt.Println(result[0][1])

    reg1 := regexp.MustCompile(`<strongs*class="lls*rating_num"s*property="v:average">(.*)</strong>`)
    result1 := reg1.FindAllStringSubmatch(string(sHtml), -1)

    fmt.Println(result1[0][1])
}

以上是关于go语言之正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

go语音之进阶篇正则表达式

Go语言之高级篇Beego框架之爬虫项目实战

Go语言中正则表达式的使用

go语言正则表达式-实践教程

Go语言的正则表式之regexp包

Go 语言入门很简单:正则表达式