【Golang】✔️走进 Go 语言✔️ 第二十一 延迟处理 & 正则表达式
【摘要】
【Golang】✔️走进 Go 语言✔️ 第二十一 延迟处理 & 正则表达式
概述延迟处理例一例二
正则表达式单匹配多匹配
概述
Golang 是一个跨平台的新生编程语言....
概述
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") // 倒数第二执行
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
输出结果:
a
b
d
c
- 1
- 2
- 3
- 4
例二
package main
import ("os")
func main() {
file, _ := os.Open("test.txt")
// 关闭文件
defer file.Close()
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
正则表达式
正则表达式 (Regular Expression) 使用了一种字符串匹配的模式, 可以帮助我们检索, 替换文本.
特殊字符 | 描述 |
---|---|
$ | 匹配输入字符的结尾位置 |
() | 标记一个子表达式的开始和结束位置 |
* | 匹配前面的子表达零次或多次 |
+ | 匹配前面的子表达式一次或多次 |
. | 匹配除换行符 \n 之外的任意字符 |
? | 匹配前面的子表达式零次或一次 |
\ | 将下一个字符标记为或特殊字符, 或原义字符, 或向后引用, 或八进制转义符 |
^ | 匹配属兔字符串开始位置 |
格式:
- 1
单匹配
格式:
MatchString(pattern string, s string)
- 1
参数:
- 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)
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
输出结果:
是否为电话号码: true
- 1
多匹配
格式:
FindAllString(s string, n int)
- 1
参数:
- 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))
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
输出结果:
是否为电话号码: [(517)-654-2321 (517)-654-2322 (517)-654-2323]
- 1
文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。
原文链接:iamarookie.blog.csdn.net/article/details/119771496
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)