Groups and ranges - JavaScript 编辑
组和范围表示表达式字符的 组和范围
类型
The following section is also duplicated on this cheatsheet. Do not forget to edit it as well, thanks!字符集 | 含义 |
---|---|
x|y | 匹配 "x" 或 "y" 任意一个字符。例如, |
[xyz] | 字符集。 匹配任何一个包含的字符。您可以使用连字符来指定字符范围,但如果连字符显示为方括号中的第一个或最后一个字符,则它将被视为作为普通字符包含在字符集中的文字连字符。也可以在字符集中包含字符类。 例如, 例如, 例如, |
| 一个否定的或被补充的字符集。也就是说,它匹配任何没有包含在括号中的字符。可以通过使用连字符来指定字符范围,但是如果连字符作为方括号中的第一个或最后一个字符出现,那么它将被视为作为普通字符包含在字符集中。例如,[^abc]和[^a-c]一样。它们最初匹配“bacon”中的“o”和“chop”中的“h”。 ^ 字符也可以表示 输入的起始 |
(x) | 捕获组: 匹配x并记住匹配项。例如,/(foo)/匹配并记住“foo bar”中的“foo” 正则表达式可以有多个捕获组。结果,匹配通常在数组中捕获的组,该数组的成员与捕获组中左括号的顺序相同。这通常只是捕获组本身的顺序。当捕获组被嵌套时,这一点非常重要。使用结果元素的索引 ( 捕获组会带来性能损失。如果不需要收回匹配的子字符串,请选择非捕获括号(见下面)。
match()不会返回组,如果/…但是,您仍然可以使用String.matchAll()来获取所有匹配项。 |
\n | 其中n是一个正整数。对正则表达式中与n括号匹配的最后一个子字符串的反向引用(计算左括号)。例如, |
(?<Name>x) | 具名捕获组: 匹配"x"并将其存储在返回的匹配项的groups属性中,该属性位于 例如,使用正则
|
(?:x) | 非捕获组: 匹配 “x”,但不记得匹配。不能从结果数组的元素中收回匹配的子字符串([1], ..., [n] ) or from the predefined RegExp object's properties ($1, ..., $9 ). |
一些例子
计算元音数
var aliceExcerpt = "There was a long silence after this, and Alice could only hear whispers now and then.";
var regexpVowels = /[aeiouy]/g;
console.log("Number of vowels:", aliceExcerpt.match(regexpVowels).length);
// Number of vowels: 25
使用 组
let personList = `First_Name: John, Last_Name: Doe
First_Name: Jane, Last_Name: Smith`;
let regexpNames = /First_Name: (\w+), Last_Name: (\w+)/mg;
let match = regexpNames.exec(personList);
do {
console.log(`Hello ${match[1]} ${match[2]}`);
} while((match = regexpNames.exec(personList)) !== null);
使用命名组
let users= `姓氏: 李, 名字: 雷
姓氏: 韩, 名字: 梅梅`;
let regexpNames = /姓氏: (?<first>.+), 名字: (?<last>.+)/mg;
let match = regexpNames.exec(users);
do {
console.log(`Hello ${match.groups.first} ${match.groups.last}`);
} while((match = regexpNames.exec(users)) !== null);
// Hellow 李 雷
// Hellow 韩 梅梅
Note: 并不是所有的浏览器都支持这个功能; 参考兼容表: compatibility table.
技术指标
技术指标 |
---|
ECMAScript (ECMA-262) RegExp: Ranges |
浏览器兼容性
有关浏览器兼容性的信息,请查看 main Regular Expressions compatibility table.
另请参阅
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论