我试图找到最简洁的方法来为0-100(包括0-100)的整数编写正则表达式。这是我到目前为止,还有更好的形式吗?
^[0-9][0-9]?$|^100$
答案 0 :(得分:1)
正则表达式对于某些任务来说是一个非常强大的工具,但是当应用于它不适合的事情时,它很快就会失控。很难说不知道为什么你需要这个特殊的正则表达式,但在大多数情况下我更喜欢捕获你想要的数字,然后使用你的编程语言来评估捕获的值是否在所需的范围内。这似乎是一种正则表达式会使您的代码不必要地复杂化的情况。
也就是说,如果您承诺使用正则表达式并且不想要前导零,那么您可能需要^[1-9]?\d$|^100$
。
答案 1 :(得分:1)
我建议不要这样做,但要回答你的问题......我认为这个正则表达式是最简洁/纯粹的版本:
^(?:100|[1-9]?[0-9])$
^
和$
锚只使用一次。100
放在交替的第一位,因为99%(任意估计)时间会更有效... 200会立即失败而不是匹配20然后失败。\d
,因为isn't the same as [0-9]
。答案 2 :(得分:0)
处理每个案例,如001或00001,使其更复杂,这是我能想到的最好的。当然,您可以使用\d
使其看起来更短。
^0*\(100\|^[0-9]\?[0-9]\)$