这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记 Golang中内置了regexp包支持正则表达式。
正则表达式是由普通字符(a到z)和特殊字符(称为“元字符”)组成的文字形式。
特殊字符
| 字符 | 描述 |
|---|---|
| ^ | 匹配输入字符串的开始位置,除非在方括号式中使用,否则不接受该字符的集合 |
| $ | 匹配输入字符串的结束位置 |
| () | 标记一个子表达式的开始和结束的位置 |
| * | 匹配前面的子表达式零次或多次 |
| + | 匹配前面的子表达式一次或多次 |
| ? | 匹配前面的子表达式零次或一次 |
| . | 匹配除换行符\n之外的任何单字符 |
| [ | 标记一个中括号表达式的开始 |
| { | 标记限定字符表达式的开始 |
例如 ^[1-9][0-9]*$ 表示输入的字符串必须为数字,且首位不能为0,后面的数字不限。
限定符
限定符用来指定正则表达式的一个给定组件必须出现多少次才能满足匹配。
| 字符 | 描述 |
|---|---|
| * | 匹配前面的子表达式零次或多次 |
| + | 匹配前面的子表达式一次或多次 |
| ? | 匹配前面的子表达式零次或一次 |
| {n} | n是一个非负整数,确定匹配n次 |
| {n,1} | n是一个非负整数,确定至少匹配n次 |
| {n,m} | m和n均为非负整数,最少匹配n次最多匹配m次(不能出现空格!) |