RegEx for value范围从1到365

Sre*_*har 4 regex

什么是值范围从1到365的RegEx

cod*_*ict 7

试试这个:

^(?:[1-9]\d?|[12]\d{2}|3[0-5]\d|36[0-5])$
Run Code Online (Sandbox Code Playgroud)
  • 起始锚点^和结束锚点 $是匹配整个输入而不仅仅是它的一部分.
  • (? ) 用于分组.
  • | 是为了交替
  • [1-9]\d?     匹配199
  • [12]\d{2}   匹配100299
  • 3[0-5]\d     匹配300359
  • 36 [0-5]匹配360365


Guf*_*ffa 6

你必须列出可能的组合1-9,10-99,100-299,300-359,360-365:

^([1-9]\d?|[12]\d\d|3[0-5]\d|36[0-5])$
Run Code Online (Sandbox Code Playgroud)


Tim*_*ker 5

不太适合正则表达式,但如果您坚持:

^(?:36[0-5]|3[0-5][0-9]|[12][0-9][0-9]|[1-9][0-9]|[1-9])$
Run Code Online (Sandbox Code Playgroud)

这不允许有前导零。如果您希望允许这些,请告诉我。

上面的表达式可以稍微缩短为

^(?:36[0-5]|3[0-5]\d|[12]\d{2}|[1-9]\d?)$
Run Code Online (Sandbox Code Playgroud)

但我发现第一个解决方案更具可读性。YMMV。