ES9 中的 RegExp LookBehind 捕获组在正则表达式中的正确语法

在 ES9 中,正则表达式的语法新增了 LookBehind 捕获组的支持,使得 JS 的正则表达式更加强大和灵活。本文将详细讲解 RegExp LookBehind 捕获组的正确语法及其示例,以便读者可以更好地掌握这一技术。

什么是 LookBehind 捕获组?

LookBehind 捕获组是一种零宽度断言,它用来匹配某个字符或一组字符之前的位置,而不匹配查找内容中的前缀。这意味着,LookBehind 捕获组不会让查找内容出现偏移,但是它可以用来过滤某些输入。

例如,假设我们要查找一个字符串中所有以 $ 结尾,前面是数字的结果,可以使用 LookBehind 捕获组来排除以 $ 结尾但并非数字的内容。

正确语法

ES9 的正则表达式语法支持 LookBehind 捕获组,其正确语法如下:

其中 exp 是一个正则表达式。这个表达式匹配到的所有字符串都必须出现在捕获组前面(左侧)。注意,LookBehind 捕获组必须满足最长匹配原则。

示例

下面展示一个简单的 RegExp LookBehind 捕获组的例子:

上述例子中,我们定义了一个 re 正则表达式,其查找以三个数字结尾的单词。运行代码后,可以看到 str1 中的 abc 被成功匹配,而 str2 中没有匹配的内容。

此外,还可以使用多个 LookBehind 捕获组来扩展正则表达式匹配的能力:

上述例子中,我们定义了一个 re 正则表达式,匹配以邮件地址中 @ 后为起点的单词或者以 com 结尾的单词。运行代码后,可以看到只匹配到了 gmaild 两个单词。

总结

RegExp LookBehind 捕获组是 ES9 新增的特性,用于更强大、灵活的正则表达式匹配。使用 LookBehind 捕获组可以实现一些不容易直接匹配的场景,需要我们学习和应用。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652bc2497d4982a6ebd9ff35


纠错
反馈