温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

在Go中使用正则表达式的示例

发布时间:2020-12-04 11:51:04 来源:亿速云 阅读:189 作者:小新 栏目:编程语言

这篇文章主要介绍在Go中使用正则表达式的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、演示案例

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

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

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

当然也可以看到结果是返回了我们需要的数据。在Go中使用正则表达式的示例

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

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

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

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

二、正则匹配

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

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

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

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

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

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

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

三、匹配多个值

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

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

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

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

四、正则表达式提取内容

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

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

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

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

以上是“在Go中使用正则表达式的示例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI