golang规则表达式的写法

CodingCode · · 633 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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的写法。

  1. 选择
表达式 含义
xy 连接,x后面跟y
x|y 选择,或者x或者y
xy|z 选择,xy或者z,它等同于(xy)|z
xy* x后面跟0个或者多个y,等同于x(y*)
  1. 重复
表达式 含义
x* x重复0次或多次
x+ x重复1次或多次,即至少一次
x? x重复0次或1次,最多一次
x{n} x重复精确的n次
  1. 字符含义
表达式 含义
. 任意字符
[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_]
  1. 特殊字符

特殊字符主要包括这些:\^$.|?*+-[]{}(),都是有特殊含义的,如果规则表达式中需要匹配这个特殊字符,则需要转义。

字符 含义
\ 转义字符,它后面的字符不转义,按字面文本处理
^ 文本开头
$ 文本结束
. 任意字符
| 选择符
? 0次或1次重复
* 0次或多次重复
+ 1次或多次重复
- 连续字符, 例如a-z,0-9
[] 可选字符
{} 重复次数
() 分组,在后面的子匹配特别有用

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:CodingCode

查看原文:golang规则表达式的写法

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

633 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传