当前位置:   article > 正文

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

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;
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

结果如下:

12不成功
123aa成功
a3bb12345成功
a3bb123456成功
  • 1
  • 2
  • 3
  • 4

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)))
  • 1

在这里插入图片描述
前三段重复三次,所以最后为

((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

备注: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);
  • 1
  • 2
  • 3
  • 4

以下为扩展

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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/56605
推荐阅读
相关标签