Golang✔️走进 Go 语言✔️ 第二十一 延迟处理 & 正则表达式
Posted 我是小白呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]
以上是关于Golang✔️走进 Go 语言✔️ 第二十一 延迟处理 & 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
Golang✔️走进 Go 语言✔️ 第二十课 原子操作 & 互斥体
Golang✔️走进 Go 语言✔️ 第二十课 原子操作 & 互斥体
Golang✔️走进 Go 语言✔️ 第二十四课 TCP 高阶操作
Golang✔️走进 Go 语言✔️ 第二十四课 TCP 高阶操作