命名反向引用: \k<name>
语法
正则表达式
\k<name>
参数
描述
命名反向引用与普通反向引用非常相似:它指的是捕获组匹配的文本,并匹配相同的文本。不同之处在于,您通过名称而不是通过数字来引用捕获组。这使正则表达式更易于阅读,也更容易重构和维护。
在不区分 Unicode 的模式下,序列 \k
仅在正则表达式包含至少一个命名捕获组时才开始命名反向引用。否则,它是一个标识转义,与文字字符 k
相同。这是一种用于 Web 兼容性的已弃用语法,您不应该依赖它。
js
/\k/.test("k"); // true
示例
配对引号
以下函数匹配字符串中的 title='xxx'
和 title="xxx"
模式。为了确保引号匹配,我们使用反向引用来引用第一个引号。访问第二个捕获组 ([2]
) 将返回匹配引号字符之间的字符串
js
function parseTitle(metastring) {
return metastring.match(/title=(?<quote>["'])(.*?)\k<quote>/)[2];
}
parseTitle('title="foo"'); // 'foo'
parseTitle("title='foo' lang='en'"); // 'foo'
parseTitle('title="Named capturing groups\' advantages"'); // "Named capturing groups' advantages"
规范
规范 |
---|
ECMAScript 语言规范 # prod-AtomEscape |
浏览器兼容性
BCD 表格仅在浏览器中加载