如果strings包提供的函数能解决你的问题,那么就尽量使用它来解决。因为他们足够简单、而且性能和可读性都要比正则好。

学习正则匹配

如何系统的学习正则匹配呢,需要一点辅助工具和知识,然后就是勤加练习。这里就祭出这个玩意:

learn-regex

正则匹配表

Go使用的正则标准与其他编程语言的标准有些不同,这里参考:re2-正则表达式

常用的可以参考以下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
----字符:

“.”: 匹配任意一个字符

"[ ]": 匹配 [ ] 内任意一个字符。

“-”:指定范围: a-z、A-Z、0-9

"^": 取反。 使用在 [ ] 内部。[^xy]8

[[:digit:]] ——> 数字 == [0-9]

-----次数:

“?”: 匹配 前面 单元出现 0-1次

“+”:匹配 前面 单元 出现 1-N次

“*”:匹配 前面 单元 出现 0-N次

“{N}”: 匹配 前面 单元 精确匹配 N 次

"{N,}": 匹配 前面 单元 至少匹配 N 次

"{N,M}": 匹配 前面 单元 匹配 N -- M 次。

---- 单元限定符:

“()”: 可以将一部分正则表达式,组成一个 单元,可以对该单元使用 数量限定符

更多例子则是参考:
正则表达式匹配规则



推荐文章(由hexo文章推荐插件驱动)