This question already has answers here:
Regex: Repeated capturing groups
(3个答案)
去年关闭。
我有以下字符串:
我想获取所有大小值。因此,在此示例中,它将为
我已经尝试过以下模式:
但是然后我只得到第一个值(
如果使用此模式,则
它使用
然后它匹配任意数量的
最后,它使用否定的外观,寻找
(3个答案)
去年关闭。
我有以下字符串:
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
最佳答案
您可以在后面使用否定的外观,如下所示:
@"(?<=Sizes.*)\d+(?<!Min.*)"
它使用
look behind
,查找'Sizes'
,后跟任意数量的任何字符。然后它匹配任意数量的
digits
。最后,它使用否定的外观,寻找
'Min'
。当它到达该单词时,它停止匹配。关于c# - 正则表达式在组内查找值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53327647/
10-13 03:18