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*
将匹配零个或多个 o
。 b(?:oo)*
将匹配 b
,或 boo
,或 boooo
,等等(零,或两个,或四个,或六个,... o
s )
查看紧接在量词之前的标记,了解它在量化什么。
再比如,[ab][xy]*
将匹配a
,或b
,或ax
,或axxxy
,或byxyy
。量词 [xy]
之前的标记与 x
或 y
匹配,重复零次或多次。
所以我只是想弄清楚 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*
将匹配零个或多个 o
。 b(?:oo)*
将匹配 b
,或 boo
,或 boooo
,等等(零,或两个,或四个,或六个,... o
s )
查看紧接在量词之前的标记,了解它在量化什么。
再比如,[ab][xy]*
将匹配a
,或b
,或ax
,或axxxy
,或byxyy
。量词 [xy]
之前的标记与 x
或 y
匹配,重复零次或多次。