阅读934 返回首页    go 阿里云 go 技术社区[云栖]


正则表达式备忘录


1)

. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配任意的数字,例如:\d{2}表示前面的数字连续出现2次,即2个数字。
\b 匹配单词的开始或结束,也就是单词的分界处,它只匹配一个字符位置。
^ 匹配字符串的开始
$ 匹配字符串的结束

2)
* 表匹配次数的符号。重复零次或更多次 它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复出现任 意次以使整个表达式得到匹配。
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

3)
[] 匹配方括号里面的字符。例:[0-9]代表的含意与\d是完全一致的:即一位数字;[a-zA-Z]表任意一个英文字母。在方括号内只匹配单个字符。

4)反义
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

5)字符转义用符号“\”,例:要显示元字符.,要用\.表示。

6) | 指明两项之间的一个选择。要匹配 |,使用 \|

7)例子:

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配中国邮政编码:[1-9]\d{5}(?!\d)
匹配身份证:\d{15}|\d{18}


匹配单个字符的元字符
. 点号  匹配单个任意字符
[…] 字符组 匹配单个列出的字符
[^...] 排除型字符 匹配单个未列出的字符
\char 转义字符 若char是元字符,或转义序列无特殊含义时,匹配char对应的普通字符。
提供计数功能的元字符
 ? 问号 允许匹配一次,但非必须
 * 星号 可以匹配任意多次,也可以不匹配
 + 加号 至少需要匹配一次,至多可能匹配任意多次
{min,max} 区间量词 至少要min次,至多允许max次
匹配位置的元字符
^ 脱字符 匹配一行的开头位置
$ 美元符 匹配一行的结束位置
\< 单词分界符 匹配单词开始的位置
\> 单词分界符 匹配单词结束的位置
其他元字符
| 竖划线 匹配任意分割的表达式
(...) 括号 限定多选结构的范围,标注量词作用的元素,为反向引用捕获文本。
\1\2 反向引用 匹配之前的第一,第二组括号内的表达式匹配的文本

最后更新:2017-04-02 06:52:11

  上一篇:go cacti + squid
  下一篇:go Android国际化中用到的国家/地区 语言缩写代码