C#正则表达式

/*(程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:编写一个名称为MyClass的类,在该类中编写一个方法,名称为CountNum,输入一串数字和一个要查找的数字,统计该串数字中出现了几次要查找的数字.
 * 要求输入的数字要符合正则表达式。
* 作 者:姜甜甜
* 完成日期: 2016 年 04月 23 日                                                                                                 
* 程序头部的注释结束
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{


    class Program
    {
        static void Main(string[] args)
        {
            Myclass t = new Myclass();
            t.CountNum();
            Console.ReadKey();
        }
    }
    class Myclass
    {
        public Boolean isNum(string val)
        {
            Regex rex = new Regex(@"^[+-]?\d*[.]?\d*$");
            if (rex.IsMatch(val))
            {
                return true;
            }
            return false;
        }
        public static bool ISIntNum(string input)
        {
            Regex reg = new Regex("^\\d+$");
            Match m = reg.Match(input);
            return m.Success;
        }

        public void CountNum()
        {
            Console.WriteLine("请输入一串数字和要查找的数字:");
            string s = Console.ReadLine();
            string t = Console.ReadLine();
            if (ISIntNum(s) && ISIntNum(t))
            {
                int c = 0;
                char[] a = s.ToCharArray();
                for (int i = 0; i < a.Length; i++)
                {
                    if (a[i].ToString() == t)
                        c++;
                }
                Console.WriteLine(c);
            }

        }
    }
}

2 设计一个扩展方法用于验证据民生身份证合法性。正则表达式为:\d{17}[\d|X]|\d{15}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace getnum
{
    public static class Extensions
    {
        //身份证为15位或者18位,15位的全为数字,18位的前17位为数字,最后一位为数字或者大写字母”X“。
        public static Boolean yanz(this string s)
        {
            bool t =false;
            Regex rex = new Regex(@"^\d{17}[\d|X]|\d{15}$");  //   \d 表是0-9的数字 {}表示有多少个数字
            if (rex.IsMatch(s))  
            {  
               return true;  
            }  

            return t;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            string s = "12345678910";//<15
            string s1 = "1234567891234567";//=15  
            string s2 = "12345678912345678X";
            Console.WriteLine(s.yanz());
            Console.WriteLine(s1.yanz());
            Console.Write(s2.yanz());
            Console.ReadKey();
        }
    }
}
False
True
True



 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值