重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍在Go中使用正则表达式的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
成都创新互联是专业的蓬莱网站建设公司,蓬莱接单;提供成都网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行蓬莱网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!在这个案例中声明了常量text
然后使用了regexp这个包的regexp.Compile这个方法。
这种方式是不确定用户输入的值是否符合匹配规则。
当然也可以看到结果是返回了我们需要的数据。
但是在一般情况下,如果确定了用户输入的内容是正确的是完全符合的就可以使用下方案例。
在这个案例中可以看到regexp.MustCompile
使用了这个方法,并且返回的值也是一样的。
这个方法没有返回错误,但是在自己的内部方法进行了异常处理。
根据注释可以得知使用这个方法给的参数表达式是不必须可以解析的,如果不能解析则就会抛出异常。
接下来我们使用正则进行匹配, 也就是在上图方法中进行正则表达式的匹配。
案例跟上图使用的一致都是用来匹配邮箱。
那么接下来先写第一版本。
可以看到返回结果就是我们想要的。
关于正则表达式的写法这部分内容在这里就说明了, 本文主要是针对go如何使用正则表达式。
此时就会反映出第一个问题,那就是FindString
这个方法只能匹配一个值。
那如何匹配多个值呢!请看下方案例
可以看到返回结果是将所有可以匹配的邮箱都给匹配了出来。
匹配多个值需要使用FindAllString
这个方法。
第一个参数为匹配的字符,第二个参数是寻找多少个,-1是全找
在go中给提供了一种非常好的方式可以直接将邮箱名、邮箱域名、和邮箱后缀给提取出来,那么应该怎么做呢!
在这里就不能继续使用上述案例的方法了,需要使用FindAllStringSubmatch
这个方法
在这个方法中可以得知返回的是一个二维的字符串,从上图的返回结果也可以得知返回的就是一个二维的字符串。
既然返回的是二维的字符串切片,那么我们就可以进行循环来获取每一个提取出来的内容。
可以看到返回了四个匹配,第一个就是完整的,后边的三个都是我们获取出来的内容。
以上是“在Go中使用正则表达式的示例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!