使用正则表达式检查数字范围
我使用正则表达式来验证字符串中的某种格式。此字符串将成为游戏的规则。
示例:根据规则,“DX 3”是可以的,但“DX 14”也可以...我知道如何查看字符串并找到一个或多个“数字”,所以问题是正则表达式也将匹配34,并且这个数字超出了规则的“范围”...
我是否缺少有关正则表达式的某些内容来执行此操作?还是根本不可能?
我使用正则表达式来验证字符串中的某种格式。此字符串将成为游戏的规则。
示例:根据规则,“DX 3”是可以的,但“DX 14”也可以...我知道如何查看字符串并找到一个或多个“数字”,所以问题是正则表达式也将匹配34,并且这个数字超出了规则的“范围”...
我是否缺少有关正则表达式的某些内容来执行此操作?还是根本不可能?
不幸的是,没有简单的方法可以在正则表达式中定义范围。如果您要使用范围1-23,则最终会得到如下所示的正则表达式:
([1-9]|1[0-9]|2[0-3])
解释:
它不是那么短,也不灵活。
如果搜索 1 到 19,则可以搜索“DX 1?例如,[0-9]“,但如果它没有在数字边界结束,它很快就会变得丑陋,并且更改规则是不灵活的。
在空白处拆分字符串,然后使用 x > 0 和 x < 24 更好理解,也更灵活。