正则表达式基本规则

Posted by Steve on July 23, 2018

正则表达式就是对字符串操作的一种逻辑公式。有时候使用正则表达式会起到事半功倍的效果。

下面是正则表达式的一些规则,方便回过头来记。对正则表达式的具体学习,我在网上找到这篇文章或许是全网第二靠谱的中文教程了(-- 新《广告法》第九条 --)。

基本介绍

字符集合

正则表达式 说明
[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中,使用正则进行替换时,保留部分被匹配到的内容”。