本文目的
此文章在于帮助读者在5分钟内,回忆正则表达式,前提是读者需要具有一定的正则表达式基础。对于没有任何正则表达基础的读者,本文可能用处不大,这类读者可以参看文章《正则表达式30分钟入门教程》。
基本字符
\d |
数字,digital的简写 |
\b |
单词开头或结尾,如’\baw*z\b’,a开头,b结尾 |
\s |
空白,如空格,制表符,回车,换行 |
\w |
字母或数字,还有中文 |
^ |
开头 |
$ |
结尾 |
. |
任意单个字符,除了换行 |
[abc] |
匹配任意在等于a或b或c的字符 |
[m-n] |
范围,m-n之间,也适用于字母 |
数量限定
{n} |
出现n次 |
{n,m} |
出现n到m次 |
{n,} |
出现大于或等于n次 |
? |
出现0次或1次 |
* |
出现0此或多次 |
+ |
出现1次或多次 |
反义字符
\D |
匹配任意不是数字的字符 |
\B |
匹配不以某字符开头或结尾 |
\S |
匹配任意不是空白字符 |
\W |
匹配任意不是字母或数组或中文 |
[^x] |
匹配任意不是x的字符 |
[^xyz] |
匹配任意不是x,或y或z的字符 |
P.S.: 与基本字符对应,刚好相反
其他字符
\ |
转义字符,上面出现的特殊字符为保留字符,如果需要匹配这些字符,如$,^等,需要用\转义 |
() |
分组,用于关联后面相邻的数量限定,如(ab){2},表示’ab’必须连续出现两次,如果写成ab{2},那么只是标识’b’需要连续出现2次 |
| |
逻辑或,匹配两边中的一个即符合 |
常见正则表达式
IP v4 |
^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$ |
去除开头空白符号 |
^\s* |
出去结尾空白符号 |
\s*$ |
去除两端空白符号 |
(^\s*)|(\s*$) |
日期YYYY-MM-DD |
\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2]\d)|(3[0-1])) |
P.S.正则表达式不是万能的,比如上面的日期的判断,还需要判断闰年,大小月等,这些逻辑在正则表达式中不能完成,还需要其他方式判断日期的合法化。
参考资料