在Go中使用正则表达式

简介: 在Go中使用正则表达式

一、演示案例

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


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


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


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


image.png


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


在这个案例中可以看到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的一个练习,没有多深的内容,主要就是关于正则包的使用,最重要的就是最后一个案例,这种正则表达式提取内容在爬虫的项目中是非常常见的。


相关文章
|
6天前
|
存储 Go 索引
Go 正则表达式
Go 正则表达式
42 0
|
9月前
|
存储 Go 索引
Go 正则表达式
Go 正则表达式
41 0
|
Go 数据安全/隐私保护 Python
Go 编程 | 连载 27 - 正则表达式
Go 编程 | 连载 27 - 正则表达式
|
程序员 Go
Go 语言入门很简单:正则表达式(下)
在计算中,我们经常需要将特定模式的字符或字符子集匹配为另一个字符串中的字符串。此技术用于使用特别的语法来搜索给定字符串中的特定字符集。比如邮件、手机号、身份证号等等。 如果搜索到的模式匹配,或者在目标字符串中找到给定的子集,则搜索被称为成功;否则被认为是不成功的。 那么此时该用到正则表达式了。
|
Java 编译器 Go
Go 语言入门很简单:正则表达式(上)
在计算中,我们经常需要将特定模式的字符或字符子集匹配为另一个字符串中的字符串。此技术用于使用特别的语法来搜索给定字符串中的特定字符集。比如邮件、手机号、身份证号等等。 如果搜索到的模式匹配,或者在目标字符串中找到给定的子集,则搜索被称为成功;否则被认为是不成功的。 那么此时该用到正则表达式了。
|
1天前
|
存储 安全 编译器
go语言中进行不安全的类型操作
【5月更文挑战第10天】Go语言中的`unsafe`包提供了一种不安全但强大的方式来处理类型转换和底层内存操作。包含两个文档用途的类型和八个函数,本文也比较了不同变量和结构体的大小与对齐系数,强调了字段顺序对内存分配的影响。
39 8
go语言中进行不安全的类型操作
|
1天前
|
Go
配置go语言下载包 - 蓝易云
这个命令会将包下载到你的GOPATH目录下,并自动安装它。
23 1
|
2天前
|
安全 Go 调度
Go语言中的并发编程
Go语言自带了强大的并发编程能力,它的协程机制可以让程序轻松地实现高并发。本文将从并发编程的基础概念出发,介绍Go语言中的协程机制、通道和锁等相关知识点,帮助读者更好地理解并发编程在Go语言中的实践应用。
|
4天前
|
Ubuntu Unix Linux
【GO基础】1. Go语言环境搭建
【GO基础】1. Go语言环境搭建
|
5天前
|
JSON 前端开发 Go
lucky - go 语言实现的快速开发平台
go 语言实现的快速开发平台,自动生成crud代码,前端页面通过json配置,无需编写前端代码。
11 0