1.判断是否为1-999之间的数字
string RunTime = txtRunTime.Text;
if (!string.IsNullOrEmpty(RunTime))
{
Regex reg = new Regex(@"^[1-9]{1}\d{0,2}$");
bool realvalue= reg.IsMatch(RunTime);
//如果不是1-999之间的纯数字,就返回
if (!realvalue)
{
MessageBox.Show("请输入非零开头,1-999之间的纯数字!");
return;
}
}
2. 匹配3个连续的数字
string regularExpression = "[0-9]{3}";
Regex rg = new Regex(regularExpression);
string[] contents = { "12", "123aa", "a3bb12345", "a3bb123456" };
for (int i = 0; i < contents.Length; i++)
{
if (rg.IsMatch(contents[i]))
{
Console.WriteLine(contents[i] + "成功");
}
else
{
Console.WriteLine(contents[i] + "不成功");
}
}
Console.ReadKey();
结果如下:
12不成功
123aa成功
a3bb12345成功
a3bb123456成功
3. 匹配IP地址
这里讲的是IPv4的地址格式,总长度 32位=4段*8位,每段之间用.分割, 每段都是0-255之间的十进制数值。
将0-255用正则表达式表示,可以分成一下几块来分别考虑:
取值区间 特点 正则写法 可合并的写法 可合并的写法 可合并的写法
0-9 一位数,只有个位,取值是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,个位取值是0~9 [1-9]\d
100-199 三位数,最高位取值为1,十位取值0-9,个位取值0-9 1\d{2} -
200-249 三位数,最高位取值为2,十位取值0-4,个位取值0-9 2[0-4]\d - -
250-255 三位数,最高位取值为2,十位取值5,个位取值0-5 25[0-5] - -
IP地址格式可表示为:XXX.XXX.XXX.XXX,XXX取值范围是0-255,前三段加一个.重复了三次,在与最后一段合并及组成IP地址的完整格式。
所以IP地址的正则表示法如下:
((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)))
前三段重复三次,所以最后为
((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位就不匹配三位了
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);
以下为扩展
IP正则表达式(不同类型的)
^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$
匹配 127.0.0.1 | 255.255.255.0 | 192.168.0.1
不匹配 1200.5.4.3 | abc.def.ghi.jkl | 255.foo.bar.1
正则表达式
^((0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1}).){3}(0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})(?(/)/([0-9]|[1-2][0-9]|3[0-2])|)$
匹配 192.168.0.1 | 192.168.0.1/32 | 255.255.0.0/1
不匹配 010.0.0.0 | 192.168.0.1/33 | 256.0.1.55
正则表达式
^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}$
匹配 97.67.44.20 | 199.154.37.214 | 127.0.0.1
不匹配 63.125.94.287 | 140.370.a.187 | 94.923.1
正则表达式
/^(([01]?\d?\d|2[0-4]\d|25[0-5]).){3}([01]?\d?\d|2[0-4]\d|25[0-5])/(\d{1}|[0-2]{1}\d{1}|3[0-2])$/
匹配 192.168.100.1/24 | 0.0.0.0/0
不匹配 192.168.100.1/33 | 0.0.0.0/90
正则表达式
\d+.\d+.\d+.\d+
匹配 127.0.0.1 | 255.255.255.0 | 192.168.0.1
不匹配 @#.5.4.3 | abc.def.ghi.jkl | 255.foo.bar.1
正则表达式
^((\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5]).(\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5]).(\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5]).(\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5]))$
匹配 1.198.0.1 | 100.10.0.1 | 200.200.123.123
不匹配 …12.23 | a.23.345 | 400.500.300.300
正则表达式
^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]).(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]).(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]).(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$
匹配 0.0.0.0 | 255.255.255.02 | 192.168.0.136
不匹配 256.1.3.4 | 023.44.33.22 | 10.57.98.23.
正则表达式
^(http|https|ftp)😕/(((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]).){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])|([a-zA-Z0-9_-.])+.(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|uk|me))((:[a-zA-Z0-9])?/?([a-zA-Z0-9-._?,’/\+&%$#=~]))$
匹配 http://www.allkins.com | http://255.255.255.255 | http://allkins.com/page.asp?action=1
不匹配 http://test.testing
正则表达式
^(([0-2][0-9]+[0-9]+).([0-2][0-9]+[0-9]+).([0-2][0-9]+[0-9]+).([0-2][0-9]+[0-9]+))$
匹配 113.173.40.255 | 171.132.248.57 | 79.93.28.178
不匹配 189.57.135 | 14.190.193999 | A.N.D.233
正则表达式
\b(([01]?\d?\d|2[0-4]\d|25[0-5]).){3}([01]?\d?\d|2[0-4]\d|25[0-5])\b
匹配 217.6.9.89 | 0.0.0.0 | 255.255.255.255
不匹配 256.0.0.0 | 0978.3.3.3 | 65.4t.54.3
原文:
https://www.cnblogs.com/olive987/p/5844501.html
https://www.cnblogs.com/FashionDoo/p/10685631.html