热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Go语言正则表达式的使用(VSCodeformac)

Go语言正则表达式的使用(VSCodeformac),Go语言社区,Golang程序员人脉社

1、首先看一下标准的字节数组匹配用法

isok, _ := regexp.Match("[a-zA-Z]{3}", []byte("abc"))
fmt.Printf("%vn", isok) //true

输出结果:

true

2、测试看一下标准的字符串匹配用法

isok, _ = regexp.MatchString("[a-zA-Z]{3}", "ab2d")
fmt.Printf("%vn", isok) //false

输出结果:

false

3、测试正则表达式对匹配结果的获取

使用字符串或键盘左上角的点效果一样的,只是不需要转义处理

//reg := regexp.MustCompile("\w+")
reg1 := regexp.MustCompile(`w+`)

result := reg1.FindAllString("test nb na", -1) //参数负1表示查找所有的结果
fmt.Printf("%vn", result)
fmt.Printf("%v-%v-%vn", result[0], result[1], result[2])

返回结果实际是字符串数组,三个单词各为一个元素
输出结果:

[test nb na]
test-nb-na

4、测试正则表达式捕获结果的的用法

reg2 := regexp.MustCompile(`^a(.*)z$`)
result2 := reg2.FindAllStringSubmatch("atest nbz naz", -1)
fmt.Printf("%vn", result2)
fmt.Printf("%vn", result2[0][1])

[0][1]表示第一个捕获的元素,也就是对应 (.*)这个所匹配的子串;
返回结果应该是 a开头与z结尾中间的部分,输出结果如下:

[[atest nbz naz test nbz na]]
test nbz na

5、使用正则表达提取网页中的内容

测试网址为:https://movie.douban.com/subject/26394152/?from=showing
网页内容如下:
在这里插入图片描述
测试提供电影的标题名称,和评分

func main() {
	url := "https://movie.douban.com/subject/26394152/?from=showing"
	resp, err := http.Get(url)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	sHtml, _ := ioutil.ReadAll(resp.Body)

	reg := regexp.MustCompile(`(.*)`)
	res := reg.FindAllStringSubmatch(string(sHtml), -1)
	fmt.Println(res[0][1]) //[0][1]表示第一个捕获的元素,[0][2]表示第二个捕获的元素

	reg = regexp.MustCompile(`(.*)`)
	res = reg.FindAllStringSubmatch(string(sHtml), -1)
	fmt.Println(res[0][1])

正则表达式中 s* 表示可以有任意个空格,(.*)表示要捕获的元素字符串
执行后输出结果如下:

大黄蜂 Bumblebee
7.1

推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
author-avatar
远洋箭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有