java 正则表达式 1-20,21-30 写法

字符串:1-20,21-30...,250-256
所有的数字范围在:1-256
只要符合上面那种规则的的判断,请请教一下正则表达式怎么写。

这样太麻烦 先用\d{0,3}-\d{0,3}做初步判断,然后做进一步判断可以么

Try:

^(([1-9])|([1-9]\d)|(1\d{2})|(2[0-4]\d)|(25[0-6]))-(([1-9])|([1-9]\d)|(1\d{2})|(2[0-4]\d)|(25[0-6]))$

Try:

^(([1-9])|([1-9]\d)|(1\d{2})|(2[0-4]\d)|(25[0-6]))-(([1-9])|([1-9]\d)|(1\d{2})|(2[0-4]\d)|(25[0-6]))$

Demo: https://regex101.com/r/pX9vZ2/1