为10到240之间的数字构建正则表达式的最佳方法是什么,另一个在10到360之间?
答案 0 :(得分:1)
正则表达式处理数字并不好。除非这是您获得的唯一选择,否则您应该选择其他解决方案。
10-240 :^(?:2(?:[0-3]\d|40)|1\d\d|[1-9]\d)$
说明:
^
:与字符串开头匹配的锚点
(?
:非捕获组(比捕获组更高效)。我用它们进行交替。
2
:字面字符'2'
[0-3]
:0到3之间的单个数字。
\d
:单个数字字符(0-9)
|
:或
3-6。 2(?:[0-3]\d|40)
:一个以2开头,后跟0-3和任何数字或字面上的'40'的数字。那场比赛200-240
|1\d\d
:或者一个后跟两位数字(0-9)。那场比赛100-199。
|[1-9]\d
:或1-9之间的数字后跟任何数字(0-9)。那场比赛10-99。
$
:与字符串末尾匹配的锚点。
在此测试:https://regex101.com/r/rO4fZ0/1
10-360 :^(?:3(?:[0-5]\d|60)|[12]\d\d|[1-9]\d)$
3(?:[0-5]\d|60)
:字面字符3后跟0-5和任意数字或字面数字60.匹配300-360。
|[12]\d\d
:或者一两个后跟两位数字(0-9)。那场比赛100-299。
|[1-9]\d
:或1-9之间的数字后跟任何数字(0-9)。那场比赛10-99。
答案 1 :(得分:1)
最好的方法是使用测试人员http://regexr.com
以下是10到240场比赛的RegEx。
^(([1-9][0-9])|(1[0-9][0-9])|(2[0-3][0-9])|(240))$
但是,我觉得这可能不是你想要达到的正确工具。
麦克