我有以下字符串:
Weight :: 1390 - 1430 Sizes :: 1450 - 1480 - 1530 - 1600 - 1700 - 1800 Min :: 1350
我想获取所有的size值。因此,在此示例中,它将为1450
,1480
,1530
,1600
,1700
,1800
。可用大小的数量是可变的。可以是2到10次。
我已经尝试过以下模式:
(?i)sizes :: *(?=.*)(?:(\d*)( - )*) .*min
但是我只得到第一个值(1450
)。
如果使用此模式,则group1
中将包含所有可用值。但是后来我被困住了。
(?i)sizes :: *(.*) .*min
答案 0 :(得分:1)
您可以在后面使用否定的外观,例如:
@"(?<=Sizes.*)\d+(?<!Min.*)"
它使用look behind
,查找'Sizes'
,后跟任意数量的任何字符。
然后它匹配任意数量的digits
。
最后,它使用否定的外观,寻找'Min'
。这样一来,当单词到达时,它便停止匹配。