我在構建正則表達式時遇到了問題,因爲我真的是主題的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