正则表达式的分组与引用

正则表达式中的小括号"()"。是代表分组的意思。
如果在其后面出现 \1 则是代表与第一个小括号中要匹配的内容相同。
如果要在替换的表达式中引用,则用法为 $1。

如果要在正则表达式内部引用某个“具名组匹配”,可以使用\k<组名>的写法。

const RE_TWICE = /^(?<word>[a-z]+)!\k<word>$/;
RE_TWICE.test('abc!abc') // true
RE_TWICE.test('abc!ab') // false

数字引用(\1)依然有效。

const RE_TWICE = /^(?<word>[a-z]+)!\1$/;
RE_TWICE.test('abc!abc') // true
RE_TWICE.test('abc!ab') // false

(?: pattern)是非捕获型括号
匹配pattern,但不捕获匹配结果。
(pattern )是捕获型括号。 匹配pattern,匹配pattern并捕获结果,自动获取组号
(?<name> pattern) 匹配pattern, 匹配pattern并捕获结果,设置name为组名

MDN:MDN rgx

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容