[√]正则表达式

138 阅读2分钟

好用的正则表达式网站:正则表达式在线测试

字符描述用法符合情况的例子
?问号0次、1次a?bimage.png
*星号0次、多次a*bimage.png
+加号前边的表达式出现
1次、多次
a+bimage.png
.匹配除换行符的所有字符a.bimage.png
^上箭头匹配开始位置^aimage.png
$匹配结束位置ab$image.png
{n}只匹配n次a{2}bimage.png
{n,}至少匹配n次
{n,m}至少匹配n次,最多匹配m次a{1,2}bimage.png
()标记子表达式的开始结束
|指明多个选择项之间选择其中1个^(a|b)image.png
[]范围表达式image.png
~波浪号 ~ 可以用于表示正则表达式的分隔符。表示后边的是正则表达式

对多个字符匹配

字符描述
(ab)+字符ab出现1次、多次
\s匹配空白,包括空格、换行、tab缩进等所有的空白
\S\s刚好相反

分组

在正则表达式中,组(Group)是一种用于标记和捕获匹配子字符串的机制。通过使用括号将模式中的一部分括起来,可以创建一个组。

组有以下几个作用:

  1. 捕获:组允许你将匹配的子字符串提取出来,以便后续进行处理或引用。你可以使用特定语法来提取组中的内容,通常是通过组的索引或名称。
  2. 分组:组还可以用于将模式的一部分进行逻辑分组,以便应用修饰符、重复操作符或其他操作符等。分组可以帮助你构建更复杂的模式,同时也影响匹配的顺序和优先级。

在正则表达式中,方括号([])和圆括号(())具有不同的作用和含义。

  1. 方括号 []: 方括号用于定义一个字符集合,表示匹配其中任意一个字符。你可以在方括号内部列出多个字符,也可以使用连字符 - 表示一个字符范围。例如,[abc] 表示匹配字符 "a"、"b" 或 "c" 中的任意一个,而 [0-9] 表示匹配任意一个数字字符。

  2. 圆括号 (): 圆括号用于创建组,它具有两个主要的作用:

    • 分组:圆括号可以将模式的一部分进行逻辑分组,以便应用修饰符或其他操作符。例如,(\d{3})-(\d{4}) 匹配形如 "123-4567" 的电话号码,其中 \d{3} 是第一个组,匹配区号,\d{4} 是第二个组,匹配后面的四位数字。
    • 捕获:圆括号还允许你捕获匹配到的子字符串,以便后续引用或处理。你可以使用特定语法来提取组中的内容,通常是通过组的索引或名称。例如,在 JavaScript 中可以使用 match 方法或 RegExp.$1 来提取组。