正则表达式组和范围

来自泡泡学习笔记
跳到导航 跳到搜索

组和范围表示表达式字符的组和范围。

(x)

捕获组:匹配 x 并记住匹配项。例如,/(foo)/匹配并记住"foo bar"中的"foo"

正则表达式可以有多个捕获组。捕获组会带来性能损失。如果不需要收回匹配的子字符串,请选择非捕获括号 。

\n

其中 n 是一个正整数。对正则表达式中与 n 括号匹配的最后一个子字符串的反向引用 (计算左括号)。例如,/apple(,)\sorange\1/ 匹配"apple, orange, cherry, peach"中的 "apple, orange,",其中 \1 引用了 之前使用 (,) 捕获的 ,

(?<Name>x)

具名捕获组:匹配"x"并将其存储在返回的匹配项的 groups 属性中,该属性位于<Name>指定的名称下。尖括号 (<>) 用于组名。

例如,使用正则 /-(?<customName>\w)/ 匹配"web-doc" 中的"d", 结果{customName: “d”}。

(?:x)

非捕获组:匹配 “x”,但不记得匹配。不能从结果数组的元素中收回匹配的子字符串。