从字符串 const str = 'qwbewrbbeqqbbbweebbbbqee';中能得到结果 ["b", "bb", "bbb", "bbbb"] 以下错误语句是?
A
str.match(/b+/g)
B
str.match(/b*/g)
C
str.match(/b{1,4}/g)
D
str.match(/b{1,5}/g)
正确答案:B
正则表达式里:
?出现0次或1次. [0,1]
- 出现0次或多次. [0,+∞]
- 出现1次或多次 [1,+∞]
A. str.match(/b+/g) 是正确的语句。
该正则表达式匹配连续出现 1 次或多次的字母 "b"。在给定的字符串中,它会匹配到所有连续出现的 "b"。因此,结果将包含所有连续的 "b"。正确的结果应该是 ["b", "bb", "bbb", "bbbb"]。
B. str.match(/b*/g) 是正确的语句。
该正则表达式匹配连续出现 0 次或多次的字母 "b"。在给定的字符串中,它会匹配到所有的 "b",包括不连续的和连续的。因此,结果将包含所有的 "b"。正确的结果应该是 ["b", "", "", "", "b", "b", "b", "", "", "", "", "", "b", "", "", ""]。
C. str.match(/b{1,4}/g) 是正确的语句。
该正则表达式匹配连续出现 1 到 4 次的字母 "b"。在给定的字符串中,它会匹配到所有连续出现的 "b",但是不会匹配超过 4 个连续的 "b"。因此,结果将包含所有符合条件的连续的 "b"。正确的结果应该是 ["b", "bb", "bbb", "bbb"]。注意,最后一个 "bbbb" 被截断为 "bbb",因为它超过了 4 个连续的 "b"。
D. str.match(/b{1,5}/g) 是错误的语句。
该正则表达式匹配连续出现 1 到 5 次的字母 "b",但是在给定的字符串中,最长连续出现的 "b" 的次数为 4,小于5次,满足条件,正确的结果应该是 ["b", "bb", "bbb", "bbbb"]。
代表次数的量词元字符:
- : 0到多个
- : 1到多个
? : 0次或1次 可有可无
{n} : 正好n次;
{n,} : n到多次
{n,m} : n次到m次
所以显而易见cd也对