正則表達式IP地址驗證
IPv4的地址格式,一共4段,每段之間用逗號分隔,每段都是0-255之間的十進制數值
string pattern = @"((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)"; string input = "net:tcp//192.168.5.173:65535/MyService"; Regex reg = new Regex(pattern); var ret= reg.Matches(input);
將0-255用正則表達式來表示,可以分為以下幾段
取值區間 | 正則表達式 | 可合並正則 | 可合並 | 可合並 |
0-9 | \d | [1-9]?\d | 1\d{2}|[1-9]?\d |
25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d |
10-99 | [1-9]\d | |||
100- 199 | 1\d{2} | |||
200-249 | 2[0-4]\d | |||
250-255 | 25[0-5] |
前三段重復三次,所以最后為
((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)
備注:1\d{2}|[1-9]?\d 這里|前后的順序不可顛倒,先匹配3位數的,如果順序顛倒,線匹配到2位就不匹配三位了
轉自:https://www.cnblogs.com/olive987/p/5844501.html