我在构建正则表达式时遇到了问题,因为我真的是主题的noob。用于验证类似范围表达式的正则表达式
目的是验证来自用户的输入 '范围' 的表达式,如下所示:
- 20-30
- 11,12(2和4)(和20之间30)
- -10(小于10)
- 80-(大于80)
或任意数量的那些的组合,如:
-10,11,12,20-30,80-
我已经能够使用以下 正则表达式(并调用.GetMatches())从这样的字符串解析不同的组件:
var rangeRegex = new Regex(@"\d+(\.\d+)?-\d+(\.\d+)?");
var smallerThanRegex = new Regex(@"(?<![\d\.])-\d+(\.\d+)?");
var greaterThanRegex = new Regex(@"\d+(\.\d+)?-(?!\d)");
我只是不知道如何将它们组合成可用于验证一个字符串是否是一个有效的“范围表达式”大正则表达式。
有没有人知道如何做到这一点而不浪费整整一周(就像我会)?非常感谢您提前!
非常感谢您,那正是我期待的!我想我会同时使用您的解决方案和Guffa建议的解决方案,使其完全失效并滤除多余的部件(如20-40,22)。 – jkokorian 2011-12-23 09:34:04