本文用于记录一些正则表达的基本操作符,以防忘记
常用元字符
符号 |
含义 |
. |
匹配除换行符外的所有字符 |
^ |
匹配字符串的开始,这个字符是前置语法 |
$ |
匹配字符串的结束,这个字符是后置语法 |
\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 即为所需要的注释,这个语法的内容会被正则忽略 |