我有一组年龄数据,如下所示;
1
2
3
4
5
6
7
8
9
10
1,1
1,2
1,3
2,12
11,13,15
7,8,12
12,15
14,16,17
15,6
13,11,10,2
等等...我正在尝试使用正则表达式来定位一个“混合”的儿童年龄段。该逻辑至少需要2个孩子的组合(因此需要其中一个带逗号的行),其中至少一个年龄小于10(min为1),并且至少一个年龄等于或大于10(最大17)。
我从上面得到的预期结果是返回以下这些行,而不是其他任何内容;
2,12
7,8,12
15,6
13,11,10,2
如何解决任何建议将不胜感激?在此先感谢,我将继续尝试纠正。
答案 0 :(得分:2)
您可以使用此正则表达式来满足您的要求:
^(?=.*\b[1-9]\b)(?=.*\b1[0-7]\b)[0-9]+(?:,[0-9]+)+$
1-9
和10-17
([1-9])
匹配应在1
和9
之间的数字1[0-7]
匹配应在10
和17
之间的数字[0-9]+(?:,[0-9]+)+
用于匹配中间的一个或多个逗号分隔数字。答案 1 :(得分:0)
你可以用
完成\b\d,1[0-7]\b
如果年龄总是排序(从最小到最老)。
如果不允许年龄为0岁,请改为
\b[1-9],1[0-7]\b
它检查一个数字后跟一个逗号,一个后跟一个0-7范围内的单个数字。