Regex frequently used sheet

关于正则表达式cheatsheet。

BRE

纯文本

test

特殊字符

\. \* \[ \] \^ \$ \{ \} \\ \+ \? \| \( \) \/# .*[]^${}\+?|() 

锚字符

^test$ #行首行尾

点字符

t.st # test 
t.st # tst (x) 

字符组

[012abc] #包含
[^012abc] #排除

区间

[0-9a-zA-Z]

特殊字符组

[[:alpha:]] # 任意字母
[[:alnum:]] # 任意字母数字
[[:blank:]] # 任意空格或制表符
[[:digit:]] # 任意0-9数字
[[:lower:]] # 任意小写字母
[[:print:]] # 任意可打印字符
[[:punct:]] # 任意标点
[[:space:]] # 任意空白字符
[[:upper:]] # 任意大写字母

星号

te*st # test; tst; teeeeest 零次或多次

ERE

问号

te?st # test; tst; 零次或一次

加号

te+st # test; teeeeest; 一次或多次

花括号

te{1,2}st #指定出现次数

管道符号(逻辑或)

test|trial #逻辑或

表达式分组

(test)? # test 出现零次或一次
(c|b)a(b|t) #cab;cat;bab;bat

应用

中国手机号

^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$

邮箱

^([a-zA-Z0-9_\-\.\+]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]){2,5}$

含中文邮箱

^([a-zA-Z0-9\u4e00-\u9fa5_\-\.\+]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]){2,5}$
Written on August 5, 2019