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



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

x*与前面的项"x"匹配0次或更多次。例如,/bo*/匹配"一个鬼booooed"中的"boooo"one_answers"一只鸟鸣叫"中的"b",但不匹配"一只山羊呻吟"中的任何内容。

我对这个定义的理解是,它将匹配一个"b",并且它将匹配后面跟着任意数量的"o"字符的"b"。那么,它与"b"字符匹配的事实是否会构成1匹配而不是0?我想是"0次或更多次"的说法让我很反感

其中的重要短语是"前一项"。如果前面的项目是一个字符,就像这里一样,这意味着那个字符可以重复0次或更多次。bo*将匹配一个b,然后是零个或多个os。单独的o*将匹配零个或更多的os。b(?:oo)*将匹配b、或boo、或boooo等。(零个、或两个、或四个、或六个、…os(

看看紧挨在量词前面的标记,看看它在量化什么。

例如,[ab][xy]*将与abaxaxxxybyxyy匹配。量词[xy]前面的标记与xy匹配,重复零次或多次。

最新更新