摘要:在本教程中,您将学习使用量词匹配字符串中的多个字符、组或字符类实例。
量词指定了在输入字符串中必须出现多少个字符、组或字符类实例,才能找到匹配项。
数量
确切数量 {n}
花括号中的数字{n}
是最简单的量词。当您将其附加到字符或字符类时,它指定您要匹配的字符或字符类的数量。
例如,正则表达式/\d{4}/
匹配一个四位数字。它与/\d\d\d\d/
相同
let str = 'ECMAScript 2020';
let re = /\d{4}/;
let result = str.match(re);
console.log(result);
Code language: JavaScript (javascript)
输出
['2020', index: 11, input: 'ECMAScript 2020', groups: undefined]
Code language: JavaScript (javascript)
范围 {n,m}
该范围匹配n
到m
次之间的字符或字符类。
例如,要查找具有两位数、三位数或四位数的数字,可以使用正则表达式/\d{2,4}/g
let str = 'The official name of ES11 is ES2020';
let re = /\d{2,4}/g;
let result = str.match(re);
console.log(result);
Code language: JavaScript (javascript)
输出
["11", "2020"]
Code language: JavaScript (javascript)
因为上限是可选的,所以{n,}
搜索n
次或更多次的序列。例如,正则表达式/\d{2,}/
将匹配任何具有两位数或更多位数的数字。
let str = 'The official name of ES6 is ES2015';
let re = /\d{2,}/g;
let result = str.match(re);
console.log(result);
Code language: JavaScript (javascript)
输出
["2015"]
Code language: JavaScript (javascript)
以下示例使用正则表达式/\d{1,}/g
匹配电话号码中具有一个或多个数字的任何数字
let numbers = '+1-(408)-555-0105'.match(/\d{1,}/g);
console.log(numbers);
Code language: JavaScript (javascript)
输出
["1", "408", "555", "0105"]
Code language: JavaScript (javascript)
简写
+
量词{1,}
表示一个或多个,其简写为+
。例如,\d+
搜索数字
let phone = "+1-(408)-555-0105";
let result = phone.match(/\d+/g);
console.log(result);
Code language: JavaScript (javascript)
输出
["1", "408", "555", "0105"]
Code language: JavaScript (javascript)
?
量词?
表示零或一。它与{0,1}
相同。例如,/colou?r/
将匹配color
和colour
let str = 'Is this color or colour?';
let result = str.match(/colou?r/g);
console.log(result);
Code language: JavaScript (javascript)
输出
["color", "colour"]
Code language: JavaScript (javascript)
*
量词*
表示零或多个。它与{0,}
相同。以下示例显示如何使用量词*
匹配字符串Java
后跟任何单词字符
let str = 'JavaScript is not Java';
let re = /Java\w*/g
let results = str.match(re);
console.log(results);
Code language: JavaScript (javascript)
输出
["JavaScript", "Java"]
Code language: JavaScript (javascript)
我们经常使用量词来形成复杂的正则表达式。以下是包含量词的正则表达式示例
- 整数:
/^\d+$/
- 小数:
/^\d*.\d+$/
- 整数和小数:
/^\d*(.\d+)?$/
- 负数、正数整数和十进制数:
/^-?\d*(.\d+)?$/
摘要
下表列出了量词
量词 | 描述 |
---|---|
* | 匹配零次或多次。 |
+ | 匹配一次或多次。 |
? | 匹配零次或一次。 |
{ n } | 正好匹配 n 次。 |
{ n ,} | 至少匹配 n 次。 |
{ n , m } | 从 n 到 m 次之间匹配。 |
本教程对您有帮助吗?