首页 > 其他 > 详细

基础加强第四天 正则表达式和XML

时间:2015-03-23 17:57:05      阅读:149      评论:0      收藏:0      [点我收藏+]

1、资料管理器
 private void Form2_Load(object sender, EventArgs e)
        {
            //文件的根路径
            string path = "demo";
            LoadDireatory(path,treeView1.Nodes);
        }

        private void LoadDireatory(string path,TreeNodeCollection tnc)
        {
            //加载所有的目录
            //GetDirectories获取指定目录中的子目录的名称
            string[] dires = Directory.GetDirectories(path);
            //循环拿出里面的数据
            for (int i = 0; i < dires.Length; i++)
            {
                //拿到文件的文件名
                //GetFileNameWithoutExtension  返回不具有扩展名的指定路径字符串的文件名
                string name = Path.GetFileNameWithoutExtension(dires[i]);
                TreeNode tn=tnc.Add(name);
                //递归
                LoadDireatory(dires[i],tn.Nodes);
            }
            //加载每个目录下的文件
            string[] file = Directory.GetFiles(path);
            for (int i = 0; i < file.Length; i++)
            {
                string fileName = Path.GetFileNameWithoutExtension(file[i]);
                TreeNode tn1 = tnc.Add(fileName);
                tn1.Tag=file[i];
            }
        }

        private void treeView1_Click(object sender, EventArgs e)
        {
            //选中相应的文件的文件名,双击打开里面的内容
            if (treeView1.SelectedNode.Tag!=null)
            {
                //将文本内容显示在文本框中
                textBox1.Text = File.ReadAllText(treeView1.SelectedNode.Tag.ToString(), Encoding.Default);
            }
        }


2、正则表达式验证邮箱
 Console.WriteLine("请输入邮箱");
            string email = Console.ReadLine();
            //静态方法

            bool result = Regex.IsMatch(email, "[0-9a-zA-Z_.-]+@[0-9a-zA-Z_-]+([.][a-zA-Z]+){1,2}");
            if (result)
            {
                Console.WriteLine("是邮箱");
            }
            else
            {
                Console.WriteLine("不是邮箱");
            }
            Console.ReadKey(true);

3、提取页面的所有的邮箱
WebClient wc=new WebClient();
            //设置该页面可以什么编码读取
            wc.Encoding = Encoding.UTF8;
            //从这个地址上把所有的字符串下载下来
            string html = wc.DownloadString("http://tieba.baidu.com/p/690777573");
            //集合
            MatchCollection matches = Regex.Matches(html, "([0-9a-zA-Z_.-]+)(@[0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2})");
            //遍历所有的匹配的邮箱
            foreach (Match item in matches)
            {
                if (item.Success)  //判断是否匹配成功,可写可不写,但是,写上效率高点
                {
                    Console.WriteLine(item.Groups[1].Value+"===="+item.Groups[2].Value);               
                }
            }
            Console.WriteLine("该页面总共有{0}个邮箱", matches.Count);
            Console.ReadKey();

4、敏感词处理
 StringBuilder listMod = new StringBuilder();//需要审核的
        StringBuilder listBanned = new StringBuilder();//禁止发帖的
        private void Form2_Load(object sender, EventArgs e)
        {
            //组合正则表达式,
           
            //读取文件,返回一个字符串数组
            string[] lines = File.ReadAllLines("mg.txt",Encoding.Default);

            //循环遍历文本文件,将中间的“=”去掉
            for (int i = 0; i < lines.Length; i++)
            {
                //将“=”去掉,返回一个集合
                string[] msg = lines[i].Split(new char[]{‘=‘},StringSplitOptions.RemoveEmptyEntries);

                //再进行判断
                if (msg[1] == "{MOD}")   //需要审核的
                {
                    //那么就将这个需要审核的添加到第一个集合中
                    listMod.Append(msg[0] + "|");
                }
                else if(msg[1]=="{BANNED}")
                {
                    listBanned.Append(msg[0]+"|");
                }
            }
            //好,这样我们将需要审核的和禁止发帖的练成了两个大的字符串,但是呢,每个字符串后面都多了一个“|”,我们需要把最后的“|”给切掉
            //移除需要审核的(去除最后一个,长度是1)
            listMod.Remove(listMod.Length-1,1);
            //移除禁止发帖的
            listBanned.Remove(listBanned.Length-1,1);
        }

        //发帖
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (Regex.IsMatch(textBox1.Text,listMod.ToString()))
            {
                MessageBox.Show("需要审核才能发帖");
            }
            else if (Regex.IsMatch(textBox2.Text, listBanned.ToString()))
            {
                MessageBox.Show("禁止发帖");
            }
            else
            {
                textBox2.Text = textBox1.Text;
            }
        }

5、读取xml
            //加载该文件
            XDocument xdc = XDocument.Load("1.xml");
            //获取文件的根元素(根节点)
            XElement root = xdc.Root;
            //Console.WriteLine(root);//获取所有的元素
            //Console.WriteLine(root.Name);//获取茛元素的名称

            //获取根元素中所有的直接子元素
            IEnumerable<XElement> eles = root.Elements();
            foreach (XElement item in eles)
            {
                Console.WriteLine(item.Name+"====="+item.Attribute("classId").Value);
                //遍历的是所有的class元素(标签)下的所有的子元素(标签)
                foreach (XElement stu in item.Elements())
                {
                    //读取班级下面的根元素
                    Console.WriteLine(stu.Name+"======"+stu.Attribute("id").Value);
                    //读取所有的姓名
                    Console.WriteLine(stu.Element("name").Value);
                    //读取性别
                    Console.WriteLine(stu.Element("gender").Value);
                    //读取年龄
                    Console.WriteLine(stu.Element("age").Value);
                }
            }
            Console.ReadKey();

基础加强第四天 正则表达式和XML

原文:http://blog.csdn.net/qizhichao110/article/details/44566349

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!