zoukankan      html  css  js  c++  java
  • 正则表达式

     
    在C#看来@"\-"就是\-这个普通的字符串,只不过在正则表达式分析引擎看来他有了特殊含义。"\\d"或者@"\d"

    元字符
    . 匹配任意单个字符
    * 匹配前面内容出现0或多次
    + 一或多次
    ? 0或一次
    [] 匹配[]中的字符出现一次[0-9] [a-z]
    () 改变正则优先级 (zo)+ zo出现1或多次
    | 或 z|food 匹配z或food (z|f)ood 匹配 zood或food
    {n} 出现n次
    {n,} 至少出现n次,最多不限
    {n,m} 至少出现n次,最多出现m次
    ^ 以谁开头 取反
    $ 以谁结尾

    •\d:代表一个数字,等同于[0-9]
    •\D:代表非数字,等同于[^0-9]
    •\s:代表换行符、Tab制表符等空白字符
    •\S:代表非空白字符
    •\w:匹配字母或数字或下划线或汉字,即能组成单词的字符
    •\W:非\w ,等同于[^\w]
     d:digital;s:space、w:word。大写就是“非”
     
    给分组命名用?<>
    贪婪的要在+后面加?就是非贪婪了 
     
    RegexOptions是枚举类型,里面可以选择忽略大小写,单行模式,多行模式。。。
    Regex
                Regex regex = new Regex("这里写正则",RegexOptions.IgnoreCase);
                Match match = regex.Match("要比配的字符串");
                if (match.Success)
                {
                    Console.WriteLine(match.Value); 
                }
    分组匹配
                Match match = Regex.Match("内容", @"正则", RegexOptions.Singleline);
                if (match.Success)
                {
                    Console.WriteLine(match.Groups[0]);
                    Console.WriteLine(match.Groups[1]);
                }

    我们可以用正则把网页的图片抓取过来,自己做个图片采集器

    View Code
                string url = "http://image.baidu.com/i?tn=list&word=liulan#%E7%BE%8E%E5%A5%B3|%E5%85%A8%E9%83%A8|0";
                string reg=@"thumbURL"":""(?<src>.+?)""";
                WebClient wc = new WebClient();
                string content=null;
                using (Stream stream = wc.OpenRead(url))
                {
                    using (StreamReader sr = new StreamReader(stream, Encoding.UTF8))
                    {
                        string line;
                        while ((line = sr.ReadLine())!=null)
                        {
                            content+=line;
                        }
                    }
                }
                MatchCollection matchs = Regex.Matches(content, reg);
                foreach (Match match in matchs)
                {
                    if (match.Success)
                    {
                         url = match.Groups["src"].Value;
                         string a = Path.GetFileName(url);
                         wc.DownloadFile(url, "d:\\Image" + a);
                    }
                }
     
  • 相关阅读:
    了解Web2.0必订阅之十大Blog[个人推荐]
    [J2ME Q&A]Target port denied to untrusted applications问题回应
    2005年Csdn十大最热门BLog作者排名第一?
    J2me流媒体技术实现讨论[1]
    液氮
    微分、差分和变分的概念
    Python mutable vs immutable (不可变对象 vs 可变对象)
    异戊烷
    免疫组化
    [导入]java escape unescape
  • 原文地址:https://www.cnblogs.com/hejinyang/p/2810064.html
Copyright © 2011-2022 走看看