Go语言的正则表式之regexp包

ck_god · · 332 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

正则表达式都是大同小异,随便写几个案例:

// code_029_regexp project main.go
package main

import (
    "fmt"
    "regexp"
)

//Go中的正则表达式
func main() {
    //返回保管正则表达式所有不重叠的匹配结果的[]string切片。如果没有匹配到,会返回nil。
    //案例1
    context1 := "3.14 123123 .68 haha 1.0 abc 6.66 123."
    exp1 := regexp.MustCompile(`\d+\.\d+`)
    result1 := exp1.FindAllStringSubmatch(context1, -1)
    fmt.Printf("%v\n", result1)
    //案例2
    context2 := `
        <title>标题</title>
        <div>你过来啊</div>
        <div>hello mike</div>
        <div>你大爷</div>
        <body>呵呵</body>
    `
    exp2 := regexp.MustCompile(`<div>(.*?)</div>`)
    result2 := exp2.FindAllStringSubmatch(context2, -1)
    fmt.Printf("%v\n", result2)
    //案例3:
    context3 := `
        <title>标题</title>
        <div>你过来啊</div>
        <div>hello 
        mike
        go</div>
        <div>你大爷</div>
        <body>呵呵</body>
    `
    exp3 := regexp.MustCompile(`<div>(?s:(.*?))</div>`) //这里包含空格和换行
    result3 := exp3.FindAllStringSubmatch(context3, -1)
    fmt.Printf("%v\n", result3)
    //案例4:
    context4 := `
        <title>标题</title>
        <div>你过来啊</div>
        <div>hello 
        mike
        go</div>
        <div>你大爷</div>
        <body>呵呵</body> 
    `
    for _, text := range result4 {
        fmt.Println(text[0])
        fmt.Println(text[1])
        fmt.Println("===========\n")
    }
}

本文来自:51CTO博客

感谢作者:ck_god

查看原文:Go语言的正则表式之regexp包

入群交流(和以上内容无关):Go中文网 QQ 交流群:798786647 或加微信入微信群:274768166 备注:入群;关注公众号:Go语言中文网

332 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传