1.string a ="sdfsdXyZ";
如何截取XyZ中的y? y是一个动态数字,X,Z是固定的。
2.上面的a其实是一个网页的源码,而我所要的基本上都在前N行中,由于我要同时抓取好多页面,想提高下效率。
问:能否只抓取网页的前10行代码或者前1000个字符? 这么做能否提供效率,重点是如何实现?另:第一题70分,第二题30分
:)

解决方案 »

  1.   

     //using System.Text.RegularExpressions;
                Regex r = new Regex("X[0-9]Z"); // 定义一个Regex对象实例
                Match m = r.Match("sdfsdX1Z"); // 在字符串中匹配
                if (m.Success)
                {
                    MessageBox.Show(m.Value);
                }
      

  2.   


            private void button1_Click(object sender, EventArgs e)
            {
               //问题1
                string a = "sdfsdX4Z";
                Regex reg = new Regex("X[0-9]Z");
                Match match = reg.Match(a);            if (match.Success)
                {
                    //你要的数字
                    int number = Convert.ToInt16(a.Substring(match.Index + 1,1));
                }           //问题2
                //请求网页
                HttpWebRequest resquest = (HttpWebRequest)HttpWebRequest.Create("http://www.sina.com");
                HttpWebResponse response = (HttpWebResponse)resquest.GetResponse();
                Stream sm = response.GetResponseStream();
                StreamReader sr = new StreamReader(sm);            //读10行
                for (int i = 0; i <= 10; i++)
                {
                    Console.WriteLine(sr.ReadLine());
                }        }
      

  3.   

    命名空间忘了using System.Text.RegularExpressions;
    using System.Net;
    using System.IO;
      

  4.   

    第一题string a ="sdfsdXyZ"; 
    int i=a.LastIndexOf("x");
    int j=a.LastIndexOf("Z");
    Sstring l=a.Substring(i,j-i);
      

  5.   

    上面应该是 string l=a.Substring(i,j-i);
      

  6.   

    纯粹字符串操作的方式已经搞定了。
    new Regex("X[0-9]Z");
    这个0-9当中可能还有一个英文逗号"," 应该如何匹配?
    另外X当中有空格为什么匹配不了? 
      

  7.   

    或者直接告诉我:
    string a="约有 <b>27,000</b> 项符合";从一大篇文章中找出上面字符串中的27,000这个正则应该怎么定义?
      

  8.   


            private void button2_Click(object sender, EventArgs e)
            {
                string a = "约有 <b>27,000 </b> 项符合";            Regex reg = new Regex(@"\s*<b>\d*,?\d*\s*</b>");
                Match match = reg.Match(a);
                if (match.Success)
                {
                    string str = match.Value.Replace("<b>", "");
                    str = str.Replace("</b>", "");
                    MessageBox.Show(str.Trim());
                }
            }
      

  9.   


    注意黑体字。从"约有 <b>27,000 </b> 项符合"中取出27,000我还是会的。