golang:在Go中使用正则表达式

 所属分类:php教程

 浏览:156次-  评论: 0次-  更新时间:2022-09-30
描述:更多教程资料进入php教程获得。 “本文将带大家了解一下在Go中如何使用正则表达式”一、演示案例在这个案例中声明了常量text然后使用了rege...
更多教程资料进入php教程获得。

本文将带大家了解一下在Go中如何使用正则表达式

一、演示案例

在这个案例中声明了常量text

然后使用了regexp这个包的regexp.Compile这个方法。

这种方式是不确定用户输入的值是否符合匹配规则。

当然也可以看到结果是返回了我们需要的数据。image.png

php入门到就业线上直播课:进入学习
API 文档、设计、调试、自动化测试一体化协作工具:点击使用

但是在一般情况下,如果确定了用户输入的内容是正确的是完全符合的就可以使用下方案例。

在这个案例中可以看到regexp.MustCompile使用了这个方法,并且返回的值也是一样的。

image.png
当用户确定输入的是完全符合时可以使用

这个方法没有返回错误,但是在自己的内部方法进行了异常处理。

根据注释可以得知使用这个方法给的参数表达式是不必须可以解析的,如果不能解析则就会抛出异常。

image.png
在这里插入图片描述

二、正则匹配

接下来我们使用正则进行匹配, 也就是在上图方法中进行正则表达式的匹配。

案例跟上图使用的一致都是用来匹配邮箱。

那么接下来先写第一版本。

可以看到返回结果就是我们想要的。

关于正则表达式的写法这部分内容在这里就说明了, 本文主要是针对go如何使用正则表达式。

image.png
使用正则的第一个版本

此时就会反映出第一个问题,那就是FindString这个方法只能匹配一个值。

image.png
反映出的第一个问题

那如何匹配多个值呢!请看下方案例

三、匹配多个值

可以看到返回结果是将所有可以匹配的邮箱都给匹配了出来。

匹配多个值需要使用FindAllString这个方法。

第一个参数为匹配的字符,第二个参数是寻找多少个,-1是全找

image.png
匹配多个值的演示案例

在go中给提供了一种非常好的方式可以直接将邮箱名、邮箱域名、和邮箱后缀给提取出来,那么应该怎么做呢!

四、正则表达式提取内容

在这里就不能继续使用上述案例的方法了,需要使用FindAllStringSubmatch这个方法

image.png
正则表达式提取内容

在这个方法中可以得知返回的是一个二维的字符串,从上图的返回结果也可以得知返回的就是一个二维的字符串。

image.png
查看返回结果

既然返回的是二维的字符串切片,那么我们就可以进行循环来获取每一个提取出来的内容。

可以看到返回了四个匹配,第一个就是完整的,后边的三个都是我们获取出来的内容。

image.png
返回每一个切片

五、总结

通过以上四个案例简单的了解一下在Go中如何使用正则表达式,进行了模拟了几个场景,和go中的正则表达式包的使用。

这个案例也算是对go的一个练习,没有多深的内容,主要就是关于正则包的使用,最重要的就是最后一个案例,这种正则表达式提取内容在爬虫的项目中是非常常见的。

坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。希望在偌大互联网中咔咔的文章能带给你一丝丝帮助。我是咔咔,下期见。

推荐:《golang教程》

以上就是在Go中使用正则表达式的详细内容,更多请关注zzsucai.com其它相关文章!

 标签: go,
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!