c#--正则表达式(项目常用)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值