Regex 1-31之间数字的正则表达式和数字之间可选的逗号

Regex 1-31之间数字的正则表达式和数字之间可选的逗号,regex,Regex,我对regex不是很在行,也许这对你们这些regex专家来说很容易 基本上,我需要一个选项,让用户输入一个介于1和31之间的数字,没有任何尾随的零,可选的逗号只有1个逗号,例如 有效期: 1. 1,22,31 无效: A. 31,33,333 2. 1,2.,3% 0,1,2,3 到目前为止,我已经尝试: ^([1-9]|[12]\d|3[0-1]),?\d+$ 但我想它已经开始出问题了 这就是你想要的吗: ^(?:[1-9]|[12]\d|3[0-1])(?:,(?:[1-9]|[12]\d

我对regex不是很在行,也许这对你们这些regex专家来说很容易

基本上,我需要一个选项,让用户输入一个介于1和31之间的数字,没有任何尾随的零,可选的逗号只有1个逗号,例如

有效期:

1. 1,22,31 无效:

A. 31,33,333 2. 1,2.,3% 0,1,2,3 到目前为止,我已经尝试:

^([1-9]|[12]\d|3[0-1]),?\d+$
但我想它已经开始出问题了

这就是你想要的吗:

^(?:[1-9]|[12]\d|3[0-1])(?:,(?:[1-9]|[12]\d|3[0-1]))*$
这就是你想要的吗:

^(?:[1-9]|[12]\d|3[0-1])(?:,(?:[1-9]|[12]\d|3[0-1]))*$

除了final\d+之外,您几乎可以使用正则表达式,您应该将它完全包含在一个集群中,并为它选择一个量词。请尝试以下方法:

^(?:(?:[12]\d|3[01]|[1-9]),?\b)+$

请参见

除了final\d+之外,您几乎可以使用正则表达式,您应该将它完全包含在一个集群中,并为它选择一个量词。请尝试以下方法:

^(?:(?:[12]\d|3[01]|[1-9]),?\b)+$

参见这里的相同:+1[0-1]可以是[01]@Thefourthbird:是的,但我保留它只是为了让我们的答案有所不同-我会拿走我的,你是第一个。太好了!似乎有效,另一个答案也有效,因此我将使用其中一个-谢谢!!这里也一样:+1[0-1]可以是[01]@Thefourthbird:没错,但我保留它只是为了让我们的答案有所不同-我会拿走我的,你是第一个。太好了!似乎有效,另一个答案也有效,因此我将使用其中一个-谢谢!!伟大的似乎有效,另一个答案也有效,因此我将使用其中一个-谢谢!!伟大的似乎有效,另一个答案也有效,因此我将使用其中一个-谢谢!!