Javascript 正则表达式量词:匹配零次或多次是什么意思

Javascript regular expression quantifiers: what does it mean to match zero or more times

所以我只是想弄清楚 javascript 正则表达式中的 * 量词究竟做了什么。 MDN 的定义如下:

x* 匹配前面的项目 "x" 0 次或更多次。例如,/bo*/ 匹配 "A ghost booooed" 中的 "boooo" 和 "A bird warbled" 中的 "b",但不匹配 "A goat grunted".

中的任何内容

我对这个定义的理解是它会匹配一个"b",它会匹配一个"b"后跟任意数量的"o"个字符。那么它匹配 "b" 字符的事实是否构成 1 个匹配而不是 0?我猜是“0 次或更多次”的说法让我失望了。

里面的重要词组是“前一项”。如果前面的项目是单个字符,就像这里,这意味着 that 字符可以重复 0 次或更多次。 bo* 将匹配 b,后跟零个或多个 o。单独 o* 将匹配零个或多个 ob(?:oo)* 将匹配 b,或 boo,或 boooo,等等(零,或两个,或四个,或六个,... os )

查看紧接在量词之前的标记,了解它在量化什么。

再比如,[ab][xy]*将匹配a,或b,或ax,或axxxy,或byxyy。量词 [xy] 之前的标记与 xy 匹配,重复零次或多次。