代码之家  ›  专栏  ›  技术社区  ›  Dominic Jonas

正则表达式在组内查找值[重复]

  •  2
  • Dominic Jonas  · 技术社区  · 7 年前

    我有以下字符串:

    Weight ::  1390 - 1430 Sizes :: 1450 - 1480 - 1530 - 1600 - 1700 - 1800 Min :: 1350
    

    1450 , 1480 , 1530 1600 , 1700 , 1800 . 可用尺寸的数量是可变的。它可以是2-10次。

    (?i)sizes :: *(?=.*)(?:(\d*)( - )*) .*min

    但我只得到第一个值( 1450 ).

    group1 . 但是我被卡住了。

    (?i)sizes :: *(.*) .*min

    1 回复  |  直到 7 年前
        1
  •  1
  •   Poul Bak    7 年前

    你可以在后面用消极的眼光看,就像这样:

    @"(?<=Sizes.*)\d+(?<!Min.*)"
    

    look behind 'Sizes' 后跟任意字符的任意数字。

    然后它匹配任意数量的 digits

    最后,它使用了一个负面的后面看,寻找 'Min' . 这使得它停止匹配,当它到达那个词时。