分享
golang规则表达式的写法
CodingCode · · 1722 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
golang规则表达式的写法
matched, err := regexp.MatchString(`a.b`, "aaxbb")
or
re1, err := regexp.Compile(`regexp`) // error if regexp invalid
re2 := regexp.MustCompile(`regexp`) // panic if regexp invalid
就不细说了,这里主要总结regexp的写法。
- 选择
| 表达式 | 含义 |
|---|---|
| xy | 连接,x后面跟y |
| x|y | 选择,或者x或者y |
| xy|z | 选择,xy或者z,它等同于(xy)|z |
| xy* | x后面跟0个或者多个y,等同于x(y*) |
- 重复
| 表达式 | 含义 |
|---|---|
| x* | x重复0次或多次 |
| x+ | x重复1次或多次,即至少一次 |
| x? | x重复0次或1次,最多一次 |
| x{n} | x重复精确的n次 |
- 字符含义
| 表达式 | 含义 |
|---|---|
| . | 任意字符 |
| [ab] | 字符a或者字符b |
| [^ab] | 不是a和b的其他任意字符 |
| [a-z] | a和z之间的任意字符 |
| [a-z0-9] | a和z以及0和9之间的任意字符 |
对于字母和数字还有一种表达方式,虽然我不经常用,但还是列在这里吧:
| 表达式 | 含义 |
|---|---|
| \d | 0到9之间的数字,等价于 [0-9] |
| \D | 非数字,等价于[^0-9] |
| \s | 空格字符,包括tab,回车换行,等价于:[\t\n\f\r ] |
| \S | 非空格字符,[^\t\n\f\r ] |
| \w | 单词字符,等价于[0-9A-Za-z_] |
| \W | 非单词字符,等价于[^0-9A-Za-z_] |
- 特殊字符
特殊字符主要包括这些:\^$.|?*+-[]{}(),都是有特殊含义的,如果规则表达式中需要匹配这个特殊字符,则需要转义。
| 字符 | 含义 |
|---|---|
| \ | 转义字符,它后面的字符不转义,按字面文本处理 |
| ^ | 文本开头 |
| $ | 文本结束 |
| . | 任意字符 |
| | | 选择符 |
| ? | 0次或1次重复 |
| * | 0次或多次重复 |
| + | 1次或多次重复 |
| - | 连续字符, 例如a-z,0-9 |
| [] | 可选字符 |
| {} | 重复次数 |
| () | 分组,在后面的子匹配特别有用 |
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1722 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
golang规则表达式的写法
matched, err := regexp.MatchString(`a.b`, "aaxbb")
or
re1, err := regexp.Compile(`regexp`) // error if regexp invalid
re2 := regexp.MustCompile(`regexp`) // panic if regexp invalid
就不细说了,这里主要总结regexp的写法。
- 选择
| 表达式 | 含义 |
|---|---|
| xy | 连接,x后面跟y |
| x|y | 选择,或者x或者y |
| xy|z | 选择,xy或者z,它等同于(xy)|z |
| xy* | x后面跟0个或者多个y,等同于x(y*) |
- 重复
| 表达式 | 含义 |
|---|---|
| x* | x重复0次或多次 |
| x+ | x重复1次或多次,即至少一次 |
| x? | x重复0次或1次,最多一次 |
| x{n} | x重复精确的n次 |
- 字符含义
| 表达式 | 含义 |
|---|---|
| . | 任意字符 |
| [ab] | 字符a或者字符b |
| [^ab] | 不是a和b的其他任意字符 |
| [a-z] | a和z之间的任意字符 |
| [a-z0-9] | a和z以及0和9之间的任意字符 |
对于字母和数字还有一种表达方式,虽然我不经常用,但还是列在这里吧:
| 表达式 | 含义 |
|---|---|
| \d | 0到9之间的数字,等价于 [0-9] |
| \D | 非数字,等价于[^0-9] |
| \s | 空格字符,包括tab,回车换行,等价于:[\t\n\f\r ] |
| \S | 非空格字符,[^\t\n\f\r ] |
| \w | 单词字符,等价于[0-9A-Za-z_] |
| \W | 非单词字符,等价于[^0-9A-Za-z_] |
- 特殊字符
特殊字符主要包括这些:\^$.|?*+-[]{}(),都是有特殊含义的,如果规则表达式中需要匹配这个特殊字符,则需要转义。
| 字符 | 含义 |
|---|---|
| \ | 转义字符,它后面的字符不转义,按字面文本处理 |
| ^ | 文本开头 |
| $ | 文本结束 |
| . | 任意字符 |
| | | 选择符 |
| ? | 0次或1次重复 |
| * | 0次或多次重复 |
| + | 1次或多次重复 |
| - | 连续字符, 例如a-z,0-9 |
| [] | 可选字符 |
| {} | 重复次数 |
| () | 分组,在后面的子匹配特别有用 |