在Go中使用正则表达式 阳光穿透心脏的1/2处 2022-12-25 09:55 151阅读 0赞 > 本文将带大家了解一下在Go中如何使用正则表达式 # 一、演示案例 # 在这个案例中声明了常量text 然后使用了regexp这个包的regexp.Compile这个方法。 这种方式是不确定用户输入的值是否符合匹配规则。 当然也可以看到结果是返回了我们需要的数据。 ![演示案例一][20201201135155622.png] 但是在一般情况下,如果确定了用户输入的内容是正确的是完全符合的就可以使用下方案例。 在这个案例中可以看到`regexp.MustCompile`使用了这个方法,并且返回的值也是一样的。 ![当用户确定输入的是完全符合时可以使用][2020120113571642.png] 这个方法没有返回错误,但是在自己的内部方法进行了异常处理。 根据注释可以得知使用这个方法给的参数表达式是不必须可以解析的,如果不能解析则就会抛出异常。 ![在这里插入图片描述][2020120113585522.png] # 二、正则匹配 # 接下来我们使用正则进行匹配, 也就是在上图方法中进行正则表达式的匹配。 案例跟上图使用的一致都是用来匹配邮箱。 那么接下来先写第一版本。 可以看到返回结果就是我们想要的。 关于正则表达式的写法这部分内容在这里就说明了, 本文主要是针对go如何使用正则表达式。 ![使用正则的第一个版本][20201201140557376.png] 此时就会反映出第一个问题,那就是`FindString`这个方法只能匹配一个值。 ![反映出的第一个问题][20201201141149197.png] 那如何匹配多个值呢!请看下方案例 # 三、匹配多个值 # 可以看到返回结果是将所有可以匹配的邮箱都给匹配了出来。 匹配多个值需要使用`FindAllString`这个方法。 第一个参数为匹配的字符,第二个参数是寻找多少个,-1是全找 ![匹配多个值的演示案例][2020120114154470.png] 在go中给提供了一种非常好的方式可以直接将邮箱名、邮箱域名、和邮箱后缀给提取出来,那么应该怎么做呢! # 四、正则表达式提取内容 # 在这里就不能继续使用上述案例的方法了,需要使用`FindAllStringSubmatch`这个方法 ![正则表达式提取内容][20201201143724813.png] 在这个方法中可以得知返回的是一个二维的字符串,从上图的返回结果也可以得知返回的就是一个二维的字符串。 ![查看返回结果][20201201143218948.png] 既然返回的是二维的字符串切片,那么我们就可以进行循环来获取每一个提取出来的内容。 可以看到返回了四个匹配,第一个就是完整的,后边的三个都是我们获取出来的内容。 ![返回每一个切片][20201201143917959.png] # 五、总结 # 通过以上四个案例简单的了解一下在Go中如何使用正则表达式,进行了模拟了几个场景,和go中的正则表达式包的使用。 这个案例也算是对go的一个练习,没有多深的内容,主要就是关于正则包的使用,最重要的就是最后一个案例,这种正则表达式提取内容在爬虫的项目中是非常常见的。 > 坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。希望在偌大互联网中咔咔的文章能带给你一丝丝帮助。我是咔咔,下期见。 [20201201135155622.png]: /images/20221120/c4b0abd4e23a4e55b2041255bbe2530d.png [2020120113571642.png]: /images/20221120/eb60b01096134a34841846beffea473f.png [2020120113585522.png]: /images/20221120/c32f8e67b8b745a6bc3d8d26008de9bd.png [20201201140557376.png]: https://img-blog.csdnimg.cn/20201201140557376.png [20201201141149197.png]: https://img-blog.csdnimg.cn/20201201141149197.png [2020120114154470.png]: https://img-blog.csdnimg.cn/2020120114154470.png [20201201143724813.png]: https://img-blog.csdnimg.cn/20201201143724813.png [20201201143218948.png]: https://img-blog.csdnimg.cn/20201201143218948.png [20201201143917959.png]: https://img-blog.csdnimg.cn/20201201143917959.png
相关 如何在Java中使用正则表达式?示例 在Java中,我们可以使用java.util.regex包中的类来处理正则表达式。以下是一个基本的示例: 1. 导入所需的类: ```java import java.ut 待我称王封你为后i/ 2024年09月10日 21:21/ 0 赞/ 7 阅读
相关 在Java中如何优雅使用正则表达式? Pattern类是正则表达式的编译表示,它的实例是不可变的,可以安全地被多个并发线程使用。Matcher类则是对输入字符串进行解释和匹配操作的引擎。与Pattern类不同... 今天药忘吃喽~/ 2024年05月01日 05:21/ 0 赞/ 24 阅读
相关 正则表达式在Java中的使用 正则表达式在Java中的使用不仅限于String类中的match()方法!!! 正则中的^与$ 首先我们来了解这两个符号在正则表达式中的作用: ^ 符号放在表达式头部 £神魔★判官ぃ/ 2024年04月07日 12:02/ 0 赞/ 29 阅读
相关 在Go中使用正则表达式 > 本文将带大家了解一下在Go中如何使用正则表达式 一、演示案例 在这个案例中声明了常量text 然后使用了regexp这个包的regexp.Compile这个方法。 阳光穿透心脏的1/2处/ 2022年12月25日 09:55/ 0 赞/ 152 阅读
相关 find中使用正则表达式 find中使用正则表达式的语法是 find dir -regextype "type" -regex "pattern" 其中 dir:查找文件的起始目 矫情吗;*/ 2022年08月06日 14:25/ 0 赞/ 368 阅读
相关 Python中使用正则表达式 模式匹配与正则表达式 Python中使用正则表达式的步骤 用正则表达式匹配更多模式 Python中使用正则表达式的步骤 1. 用imp 「爱情、让人受尽委屈。」/ 2022年05月11日 07:36/ 0 赞/ 209 阅读
相关 Python中使用正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 下表整理了一些正则表达式中经常用到的语法: <table> <tbody> < 深藏阁楼爱情的钟/ 2022年02月20日 11:47/ 0 赞/ 269 阅读
相关 QTP中使用正则表达式 正则表达式(RegExp)对象 属性: Global 属性: 设置或返回一个 Boolean 值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。 谁践踏了优雅/ 2021年09月25日 10:10/ 0 赞/ 249 阅读
相关 “And” 在正则表达式中 `&&` 尝试使用正则表达式构建逻辑“与”运算时,我们有几种方法可以遵循。 第一种方法似乎很明显,但是如果考虑一下,默认情况下正则表达式是逻辑“和”的。 正则表达式中的每个顺序字符都一起 偏执的太偏执、/ 2021年07月04日 14:58/ 0 赞/ 275 阅读
还没有评论,来说两句吧...