好用的正则表达式网站:正则表达式在线测试
字符 | 描述 | 用法 | 符合情况的例子 |
? |
0次、1次 | a?b |
|
* |
0次、多次 | a*b |
|
+ |
前边的表达式出现 1次、多次 |
a+b |
|
. |
匹配除换行符的所有字符 | a.b |
|
^ |
匹配开始位置 | ^a |
|
$ |
匹配结束位置 | ab$ |
|
{n} |
只匹配n次 | a{2}b |
|
{n,} |
至少匹配n次 | ||
{n,m} |
至少匹配n次,最多匹配m次 | a{1,2}b |
|
() |
标记子表达式的开始结束 | ||
| |
指明多个选择项之间选择其中1个 | ^(a|b) |
|
[] |
范围表达式 |
对多个字符匹配
字符 | 描述 | |
(ab)+ |
字符ab出现1次、多次 | |
\s |
匹配空白,包括空格、换行、tab缩进等所有的空白 | |
\S |
与\s 刚好相反 |
分组
在正则表达式中,组(Group)是一种用于标记和捕获匹配子字符串的机制。通过使用括号将模式中的一部分括起来,可以创建一个组。
组有以下几个作用:
- 捕获:组允许你将匹配的子字符串提取出来,以便后续进行处理或引用。你可以使用特定语法来提取组中的内容,通常是通过组的索引或名称。
- 分组:组还可以用于将模式的一部分进行逻辑分组,以便应用修饰符、重复操作符或其他操作符等。分组可以帮助你构建更复杂的模式,同时也影响匹配的顺序和优先级。
在正则表达式中,方括号([]
)和圆括号(()
)具有不同的作用和含义。
- 方括号
[]
: 方括号用于定义一个字符集合,表示匹配其中任意一个字符。你可以在方括号内部列出多个字符,也可以使用连字符-
表示一个字符范围。例如,[abc]
表示匹配字符 "a"、"b" 或 "c" 中的任意一个,而[0-9]
表示匹配任意一个数字字符。 - 圆括号
()
: 圆括号用于创建组,它具有两个主要的作用:
- 分组:圆括号可以将模式的一部分进行逻辑分组,以便应用修饰符或其他操作符。例如,
(\d{3})-(\d{4})
匹配形如 "123-4567" 的电话号码,其中\d{3}
是第一个组,匹配区号,\d{4}
是第二个组,匹配后面的四位数字。 - 捕获:圆括号还允许你捕获匹配到的子字符串,以便后续引用或处理。你可以使用特定语法来提取组中的内容,通常是通过组的索引或名称。例如,在 JavaScript 中可以使用
match
方法或RegExp.$1
来提取组。