我需要一个正则表达式来输入以下内容:
[2位],逗号,[两位数],逗号,[两位数]
2位数字不能以0开头。只允许输入前2位数字。或输入前2位数字,然后输入逗号en接下来的2位数字。或者输入如上所述的完整字符串。
有效输入为:
10
99个
17,56
15,99
10,57,61
32,44,99
有人可以帮我解决这个正则表达式吗?
目前我有这个正则表达式,但它不会将输入限制为最多3组2位数:
^\d{2}(?:[,]\d{2})*$
答案 0 :(得分:13)
^[1-9]\d(?:,[1-9]\d){0,2}$
第一部分([1-9]\d
)只是第一个数字,必须始终存在。它由非零数字和任意第二个数字(\d
)组成。
以下是非捕获组((?:...)
),其中包含逗号后跟另一个两位数字(,[1-9]\d
),与第一个相同。这个组可以重复0到2次({0,2}
),因此你可以得到一个逗号和另一个数字的一个或两个序列。
您可以轻松地扩展花括号中的部分以允许更多允许的数字。
答案 1 :(得分:1)
^[1-9]\d([,][1-9]\d){0,2}$