代码之家  ›  专栏  ›  技术社区  ›  James

在外部模式中匹配内部模式的次数不限

  •  0
  • James  · 技术社区  · 14 年前

    假设我有以下模式:

    INDICATOR\s+([a-z0-9]+)

    例如:

    INDICATOR AA INDICATOR B3

    我需要编辑这个模式,以便它匹配以 INDICATOR 有一个空间,然后有多个匹配的内部模式,例如。

    INDICATOR AA A3 66 B8 34 CD
    INDICATOR BG 4D CS
    INDICATOR HG

    有可能这样做吗?

    多亏了Gumbo,我想出了以下符合我要求的正则表达式:

    INDICATOR((\s+)?([,-])?(\s+)?([a-z0-9]+))+

    1 回复  |  直到 14 年前
        1
  •  2
  •   Gumbo    14 年前

    试试这个:

    INDICATOR(\s+([a-z0-9]+))+
    

    在这里,重复模式被包装在一个组中,并使用 + 允许一个或多个表达式在组内重复。但是,您不会得到内部组的所有匹配,而只得到最后一个匹配(或者更具体地说:这取决于您使用的实现)。