【Golang】✔️走进 Go 语言✔️ 第二十一 延迟处理 & 正则表达式

举报
我是小白呀iamarookie 发表于 2021/09/09 23:48:58 2021/09/09
2.5k+ 0 0
【摘要】 【Golang】✔️走进 Go 语言✔️ 第二十一 延迟处理 & 正则表达式 概述延迟处理例一例二 正则表达式单匹配多匹配 概述 Golang 是一个跨平台的新生编程语言....

【Golang】✔️走进 Go 语言✔️ 第二十一 延迟处理 & 正则表达式

概述

Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 21 课)

在这里插入图片描述

延迟处理

我们可以使用 defer 实现延时处理. defer 用于资源的释放, 会在函数返回之前进行调用.

在这里插入图片描述

例一

package main

import "fmt"

func main() {

	fmt.Println("a")
	fmt.Println("b")
	defer fmt.Println("c")  // 最后执行
	defer fmt.Println("d")  // 倒数第二执行

}

  
 

输出结果:

a
b
d
c

  
 

例二

package main

import ("os")

func main() {

	file, _ := os.Open("test.txt")

	// 关闭文件
	defer file.Close()

}

  
 

正则表达式

正则表达式 (Regular Expression) 使用了一种字符串匹配的模式, 可以帮助我们检索, 替换文本.

特殊字符 描述
$ 匹配输入字符的结尾位置
() 标记一个子表达式的开始和结束位置
* 匹配前面的子表达零次或多次
+ 匹配前面的子表达式一次或多次
. 匹配除换行符 \n 之外的任意字符
? 匹配前面的子表达式零次或一次
\ 将下一个字符标记为或特殊字符, 或原义字符, 或向后引用, 或八进制转义符
^ 匹配属兔字符串开始位置

格式:



  
 

单匹配

格式:

MatchString(pattern string, s string)

  
 

参数:

  • pattern: 正则表达式
  • string: 需要匹配的字符串

例子:

package main

import (
	"fmt"
	"regexp"
)

func main() {

	// 电话号码
	phone_number := "(517)-654-2321"

	// 正则表达式
	pattern := "\\([0-9]{3}\\)-[0-9]{3}-[0-9]{4}"

	// 匹配
	match, _ := regexp.MatchString(pattern, phone_number)

	// 调试输出
	fmt.Println("是否为电话号码:", match)

}

  
 

输出结果:

是否为电话号码: true

  
 

多匹配

格式:

FindAllString(s string, n int)

  
 

参数:

  • s: 需要匹配的字符串
  • n: 返回值匹配值个数, -1 代表全部

例子:

package main

import (
	"fmt"
	"regexp"
)

func main() {

	// 电话号码
	phone_number := "(517)-654-2321, (517)-654-2322, (517)-654-2323"

	// 正则表达式
	regular, _ := regexp.Compile("\\([0-9]{3}\\)-[0-9]{3}-[0-9]{4}")

	// 调试输出
	fmt.Println("是否为电话号码:", regular.FindAllString(phone_number, -1))

}

  
 

输出结果:

是否为电话号码: [(517)-654-2321 (517)-654-2322 (517)-654-2323]

  
 

在这里插入图片描述

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/119771496

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。