正则表达式就是对字符串操作的一种逻辑公式。有时候使用正则表达式会起到事半功倍的效果。
下面是正则表达式的一些规则,方便回过头来记。对正则表达式的具体学习,我在网上找到这篇文章或许是全网第二靠谱的中文教程了(-- 新《广告法》第九条 --)。
基本介绍
字符集合
| 正则表达式 | 说明 |
|---|---|
| [abc] | a、b、c中任意一个字符 |
| [^abc] | 除了a、b、c的任意字符 |
| [a-z] | a、b、c …… z中的任意一个字符 |
| [a-zA-Z0-9] | a~z、A~Z、0~9中任意一个字符 |
| a-z&&[^bc] | a~z中除了b和c以外的任意一个字符,其中&&表示“与”的关系。 |
预定义字符集
| 正则表达式 | 说明 |
|---|---|
| . | 任意一个字符 |
| \d | 任意一个数字字符,相当于[0-9] |
| \w | 单词字符,相当于[a-zA-Z0-9_] |
| \s | 空白字符,相当于[\t\n\x0B\f\r] |
| \D | 非数字字符 |
| \W | 非单词字符 |
| \S | 非空白字符 |
数量词
| 正则表达式 | 说明 |
|---|---|
| X? | 表示0个或一个X |
| X* | 表示0或任意多个X |
| X+ | 表示1个到任意多个X(大于等于1个X) |
| X{n} | 表示n个X |
| X{n,} | 表示n个到任意多个X(大于等于n个X) |
| X{n,m} | 表示n个到m个X |
()分组的使用
()表示分组,可以将一系列正则表达式看成一个整体,常常与|或连用。比如用来匹配手机号码的(\+86|0086)?\s?\d{11}
边界匹配^$
^代表字符串开始,$代表字符串结束。
GR:正则表达式中一些符号有特殊的含义,比如+,*。如果在表达式中刚好又要判断这些符号的话,记得在前面加一个\来转义一下。
比如在js中判断一个简单的运算表达式时,可以写成这样: var regExp = /^\d{1,10}[\+\-\*\/]\d{1,10}$/;
实战应用
VS Code中,使用正则进行替换时,保留部分被匹配到的内容
现有需求,将截图中的字符串按照两组为一行进行替换。使用$1可以保留被匹配到的字符串(记得需要加括号用以区分该元素,同时也支持$2,$3等数字)。

更新日志
- 2018年07月23日:初稿。
- 2021年03月09日:追加“VS Code中,使用正则进行替换时,保留部分被匹配到的内容”。