美文网首页
golang正则表达式简单应用

golang正则表达式简单应用

作者: 南尼喜嘛斯嘎 | 来源:发表于2018-03-18 13:21 被阅读0次

通过实例简单了解正则表达式在go中的使用

项目需要简单解析网址,并提取其中的信息,网址如下:
https://www.codedesigner.net/exec/1079/1902
下面分为验证和提取两部分

验证

在进行验证这个url的时候,可以使用如下的pattern
^(\w+):\/\/([^/:]+)\/([^/:]+)\/(\d*)?\/(\d*)$,该字符串使用``圈起来
其中含义如下:

  1. ^ 表示匹配输入字符串的开始位置,可以理解为字符串从^处开始匹配
  2. $ 表示匹配输入字符串的结束位置,可以理解为字符串从^处结束匹配
  3. () 表示一个组,即这个组中的内容可以重复多次

简单分析下正则和url的匹配:
(\w+)表示,匹配包括下划线的任何单词字符
://即是://的意思,/前加上的\即为转义
因此这一段匹配了https://这个协议头

[^]表示负字符范围,即排除方括号中的字符,([^/:]+) 即表示排除:和/之外,匹配多个字符
上述([^/:]+)\/([^/:]+)\/即匹配到了
www.codedesigner.net/exec/

\d为匹配数字,*表示匹配前面的子表达式零次或多次
(\d*)? 即是匹配一个或多个数字,?表示匹配前面的子表达式零次或一次
上述(\d*)?\/(\d*)即匹配到了
1079/1092

go中匹配的代码如下

a := "https://www.codedesigner.net/exec/1079/1902"
    if m, _ := regexp.MatchString(`^(\w+):\/\/([^/:]+)\/([^/:]+)\/(\d*)?\/(\d*)$`, a); !m {
        fmt.Println(false)
    } else {
        fmt.Println(true)
    }

提取

在一些情况下,上述url不仅涉及到匹配,还涉及到了里面内容的提取,项目中要求提取出来最后的1079/1092两个数字,做法如下

b := "https://www.codedesigner.net/exec/1079/1902"
re, _ := regexp.Compile(`\d+`)

    //查找符合正则的第一个
    all := re.FindAll([]byte(b),-1)
    for _,item := range all {
        fmt.Println(string(item))
    }

相关文章

  • golang正则表达式简单应用

    通过实例简单了解正则表达式在go中的使用 项目需要简单解析网址,并提取其中的信息,网址如下:https://www...

  • golang简单应用

    学习的golang的练习,推荐学习golang。https://www.liwenzhou.com mian.go...

  • golang 正则正则表达式反向查询

    golang 正则正则表达式反向查询 基本上所有的语言都有正则表达式,golang也不例外。golang原生使用r...

  • 004-golang 正则表达式的使用

    获取包名 参考链接 golang 正则表达式 基础知识 - Golang 中的正则表达式 线上正则表达式测试工具

  • Gin框架与《Web Development with Go》实

    golang的标准web开发 使用golang的标准库net/http包开发web应用是非常简单的。对于此部分内容...

  • 使用pprof发现内存泄漏

    【译文】 Golang是一个很神奇的语言。在开发系统应用或web应用时候,建议考虑采用Golang。Golang开...

  • 关于正则表达式

    正则表达式30分钟入门教程正则表达式的简单应用 如何匹配{abc:(a*c)=》c }? WHAT Regular...

  • 为容器化的 Go 程序搭建 CI

    本文介绍如何使用 Jenkins 的声明式 pipeline 为一个简单的 Golang web 应用搭建 CI ...

  • Java基础之正则表达式

    什么是正则表达式 简单来说,正则表达式就是一种规范,用于字符串匹配,查找,替换 正则表达式的应用场景 在平时的编程...

  • 常用正则表达式留影

    基本的正则表达式的应用 座机加手机号 简单手机的正则表达式 身份证号码的正则表达式 密码验证 email验证

网友评论

      本文标题:golang正则表达式简单应用

      本文链接:https://www.haomeiwen.com/subject/ccdeqftx.html