正则表达式正则表达式的数字

时间:2016-06-06 18:40:40

标签: regex

为10到240之间的数字构建正则表达式的最佳方法是什么,另一个在10到360之间?

2 个答案:

答案 0 :(得分:1)

正则表达式处理数字并不好。除非这是您获得的唯一选择,否则您应该选择其他解决方案。

10-240 ^(?:2(?:[0-3]\d|40)|1\d\d|[1-9]\d)$

说明:

  1. ^:与字符串开头匹配的锚点

  2. (?:非捕获组(比捕获组更高效)。我用它们进行交替。

  3. 2:字面字符'2'

  4. [0-3]:0到3之间的单个数字。

  5. \d:单个数字字符(0-9)

  6. |:或

  7. 3-6。 2(?:[0-3]\d|40):一个以2开头,后跟0-3和任何数字或字面上的'40'的数字。那场比赛200-240

    1. |1\d\d:或者一个后跟两位数字(0-9)。那场比赛100-199。

    2. |[1-9]\d:或1-9之间的数字后跟任何数字(0-9)。那场比赛10-99。

    3. $:与字符串末尾匹配的锚点。

    4. 在此测试:https://regex101.com/r/rO4fZ0/1

      10-360 ^(?:3(?:[0-5]\d|60)|[12]\d\d|[1-9]\d)$

      1. 3(?:[0-5]\d|60):字面字符3后跟0-5和任意数字或字面数字60.匹配300-360。

      2. |[12]\d\d:或者一两个后跟两位数字(0-9)。那场比赛100-299。

      3. |[1-9]\d:或1-9之间的数字后跟任何数字(0-9)。那场比赛10-99。

      4. 在此测试:https://regex101.com/r/lD8oM4/1

答案 1 :(得分:1)

最好的方法是使用测试人员http://regexr.com

以下是10到240场比赛的RegEx。

^(([1-9][0-9])|(1[0-9][0-9])|(2[0-3][0-9])|(240))$

但是,我觉得这可能不是你想要达到的正确工具。

麦克