本文用于记录一些正则表达的基本操作符,以防忘记
常用元字符
| 符号 |
含义 |
| . |
匹配除换行符外的所有字符 |
| ^ |
匹配字符串的开始,这个字符是前置语法 |
| $ |
匹配字符串的结束,这个字符是后置语法 |
| \b |
匹配单词的开始或结束 |
| \w |
匹配Unicode字符 |
| \s |
匹配空白(space)字符 |
| \d |
匹配数字字符 |
常用限定符
| 符号 |
含义 |
| * |
(该符号前的一个字符)重复任意次 |
| + |
重复至少一次 |
| ? |
重复至多一次 |
| {n} |
重复n次 |
| {n,} |
重复至少n次,但尽可能少 |
| {n,m} |
重复n至m次,但尽可能少 |
常用反义代码符
| 符号 |
含义 |
| \W |
匹配不是Unicode的字符 |
| \S |
匹配不是空白符(space)的字符 |
| \D |
匹配不是数字符的字符 |
| \B |
匹配不是单词开始或结束 |
| [^x] |
匹配不是x的字符 |
| [^xyz] |
匹配既不是x也不是y还不是z的字符 |
常用字符类
| 符号 |
含义 |
| [abc] |
匹配a或b或c |
| [a-f] |
匹配a至f的任意一个字符 |
| [a-zA-Z0-9] |
匹配所有的拉丁字母或数字 |
| [^0-9] |
匹配非数字 |
或运算符
| 符号 |
含义 |
| | |
或运算符 |
| (a|b) |
匹配a或b |
| (ab)|(cd) |
匹配ab或cd |
ps:单个 | 为 或运算符 ,上面可能会因为markdown的列表功能而需要转义为 \|
贪婪与懒惰
正则表达式默认为贪婪模式。(即尽可能多的进行匹配) ? 为懒惰表示符(即尽可能少的进行匹配)
| 符号 |
含义 |
| *? |
重复任意次,但尽可能少 |
| +? |
重复至少一次,但尽可能少 |
| ?? |
重复至多一次,但尽可能少 |
| {n,} |
重复至少n次,但尽可能少 |
| {n,m} |
重复n至m次,但尽可能少 |
注释
| 符号 |
含义 |
| (?# comment) |
comment 即为所需要的注释,这个语法的内容会被正则忽略 |