在Go中使用正则表达式的示例
这篇文章主要介绍在Go中使用正则表达式的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联公司成立于2013年,我们提供高端成都网站建设、网站制作、网站设计、网站定制、全网整合营销推广、小程序制作、微信公众号开发、营销推广服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为假山制作企业提供源源不断的流量和订单咨询。
一、演示案例
在这个案例中声明了常量text
然后使用了regexp这个包的regexp.Compile这个方法。
这种方式是不确定用户输入的值是否符合匹配规则。
当然也可以看到结果是返回了我们需要的数据。
但是在一般情况下,如果确定了用户输入的内容是正确的是完全符合的就可以使用下方案例。
在这个案例中可以看到regexp.MustCompile
使用了这个方法,并且返回的值也是一样的。
这个方法没有返回错误,但是在自己的内部方法进行了异常处理。
根据注释可以得知使用这个方法给的参数表达式是不必须可以解析的,如果不能解析则就会抛出异常。
二、正则匹配
接下来我们使用正则进行匹配, 也就是在上图方法中进行正则表达式的匹配。
案例跟上图使用的一致都是用来匹配邮箱。
那么接下来先写第一版本。
可以看到返回结果就是我们想要的。
关于正则表达式的写法这部分内容在这里就说明了, 本文主要是针对go如何使用正则表达式。
此时就会反映出第一个问题,那就是FindString
这个方法只能匹配一个值。
那如何匹配多个值呢!请看下方案例
三、匹配多个值
可以看到返回结果是将所有可以匹配的邮箱都给匹配了出来。
匹配多个值需要使用FindAllString
这个方法。
第一个参数为匹配的字符,第二个参数是寻找多少个,-1是全找
在go中给提供了一种非常好的方式可以直接将邮箱名、邮箱域名、和邮箱后缀给提取出来,那么应该怎么做呢!
四、正则表达式提取内容
在这里就不能继续使用上述案例的方法了,需要使用FindAllStringSubmatch
这个方法
在这个方法中可以得知返回的是一个二维的字符串,从上图的返回结果也可以得知返回的就是一个二维的字符串。
既然返回的是二维的字符串切片,那么我们就可以进行循环来获取每一个提取出来的内容。
可以看到返回了四个匹配,第一个就是完整的,后边的三个都是我们获取出来的内容。
以上是“在Go中使用正则表达式的示例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
分享文章:在Go中使用正则表达式的示例
浏览地址:http://myzitong.com/article/jcshgh.html