📅  最后修改于: 2023-12-03 14:42:29.360000             🧑  作者: Mango
在正则表达式中,用 {X,Y}
表示某个模式重复出现的次数范围。其中,X
为最少出现的次数,Y
为最多出现的次数,可以省略。如果省略 Y
,则代表重复出现至少 X
次;如果既省略 X
,又省略 Y
,则表示重复出现任意次。
例如,{3,}
表示重复出现至少 3 次;{,5}
表示重复出现最多 5 次;{2,5}
表示重复出现 2 到 5 次。
下面是一些 JavaScript 中使用 {X,Y}
量词的正则表达式示例:
const str = "123456789";
const pattern = /\d{3,5}/g;
console.log(str.match(pattern)); // ["12345", "6789"]
上面的正则表达式匹配连续的数字,要求连续数字的个数在 3 到 5 之间。
const str = "邮政编码:100029,电话:010-12345678";
const pattern = /[1-9]\d{5}(?!\d)/g;
console.log(str.match(pattern)); // ["100029"]
上面的正则表达式匹配邮政编码,要求邮政编码是 6 位数字。其中的 (?!\d)
表示后面不能紧跟数字,用于排除类似于电话号码等数字串。
const str = "IP 地址:192.168.1.1,子网掩码:255.255.255.0";
const pattern = /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/g;
console.log(str.match(pattern)); // ["192.168.1.1", "255.255.255.0"]
上面的正则表达式匹配合法的 IP 地址,要求 IP 地址的每一位都是 0 到 255 之间的数字。其中,(?:25[0-5]|2[0-4]\d|[01]?\d\d?)
表示匹配一个 0 到 255 的数字。
{X,Y}
量词是正则表达式中常用的语法,用于表示某个匹配模式出现的次数范围。在使用时,要根据实际情况灵活运用,避免出现无法满足预期需求的问题。