Regex Cheatsheet

Regular Expressions Cheat Sheet

符号解释示例示例说明
.匹配任意字符b.t可以匹配bat/but/b#t/b1t等
\w匹配字母,数字和下划线b\wt可以匹配but/b1t/b_1,但不能匹配b#t
\s匹配空白字符,包括\r,\n,\tlove\syou匹配love you
\d匹配数字\d\d可以匹配01,23等
\b限定字符串边界\bThe\b匹配The这个单词,不能匹配There。也就是The的前面和后面只能是空格
^根据字符串的开头部分匹配^The匹配以The开头的字符串
$根据字符串的结束部分匹配.exe$匹配以.exe结尾的字符串
\W匹配非字母,非数字和非下划线b\Wt可以匹配b#t,b@t等,但不能匹配but/b1t/b_1
\S匹配非空白字符love\Syou可以匹配love#you,但不能匹配love you
\D匹配非数字\d\D可以匹配9$,3#等
\B与\b相反,匹配的字符串不处于边界\Bio\B可以匹配biological,因为io的前后都不是空格
[]匹配字符集(中括号内)里的任意单一字符[aeiou]匹配a,e,i,o,u这几个元音字符
[^]匹配不在字符集(中括号内)里的任意单一字符[^aeiou]匹配除了a,e,i,o,u这几个原因字符以外的字符
*匹配0次或者多次bee*匹配be,bee或者beeeeee等
+匹配1次或者多次bee+匹配bee,beee或者beeeeee等
?匹配0次或者1次bee?匹配be或者bee
{N}匹配N次be{3}匹配beee
{M,}至少匹配M次be{3,}匹配beee,beeeeeee等
{N,M}匹配至少M次,至多N次be{3,5}匹配beee,beeee,beeeee
|分支foo|bar匹配foo或者bar
(exp)匹配exp并且捕获到自动命名的组中这里的重点是自动命名的组里,至于如何匹配完全取决于exp如何定义
(?exp)匹配exp并且捕获到名为name的组中这里的重点是命名组,至于如何匹配完全取决于exp如何定义
(?:exp)匹配exp但是不捕获匹配的文本
(?=exp)对exp前面的文本进行匹配\b\w+(?=ing)匹配I'm reading中的read
(?<=exp)对exp后面的文本进行匹配(?<=\bread)\w+\b匹配I'm reading中的ing
*?重复任意次,但尽可能少重复b\w*?pbephellobeep会匹配出bep和beep。但是如果正则为b\w*p,那么匹配的结果是bephellobeep
+?重复1次或者多次,但尽可能少重复原理同上
??重复0次或者1次,但尽可能少重复原理同上
{M,N}?重复M到N次,但尽可能少重复原理同上
{M,}?重复M次以及以上,但尽可能少重复原理同上