【发布时间】:2011-12-23 16:28:29
【问题描述】:
我在构建正则表达式时遇到了麻烦,因为我真的是这个主题的菜鸟。
目标是根据用户输入验证“范围”表达式,如下所示:
- 20-30(20-30之间)
- 11,12(2 和 4)
- -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)");
我只是不确定如何将它们组合成一个可用于验证字符串是否为有效“范围表达式”的大正则表达式。
有没有人知道如何做到这一点而不会浪费整整一周的时间(就像我一样)?非常感谢您!
【问题讨论】: