本文目的
此文章在于帮助读者在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.正则表达式不是万能的,比如上面的日期的判断,还需要判断闰年,大小月等,这些逻辑在正则表达式中不能完成,还需要其他方式判断日期的合法化。
参考资料
- 正则表达式30分钟入门教程
- The 30 Minute Regex Tutorial