C#正则表达式查找匹配循环替换内容

来源:互联网 发布:mapreduce数据去重 编辑:程序博客网 时间:2024/06/04 19:29

C#提取网页数据正则表达式二

            string regstr = @"(?i)(?<=<td.*?.*?>)[^<]+(?=</td>)"; //提取td的文字                       string regstr = @"<a\s+href=(?<url>.+?)>(?<content>.+?)</a>";   //提取链接的内容            string regstr = @"<td.+?><a\s+href=(?<url>.+?)>(?<content>.+?)</a></td>";  //提取TD中链接的内容            string regstr = @"<td.+?><span.+?>(?<content>.+?)</span></td>";  //提取TD中span的内容            string regstr = @"<td.+?>(?<content>.+?)</td>";   //获取TD之间所有的内容            string regstr = @"<td>(?<content>.+?)-<font color=#0000ff>推荐</font></td>"; //获取内容

全文提取其中内容

                                Regex reg = new Regex(@"<P\sclass=clientnamefont><B>(.*?)</B>");                                var result = reg.Match(内容).Groups;                                username = result[1].ToString();                                //foreach (var item in result)                                //{                                //     Console.WriteLine(item);                                // }                                //直接获取第几项中的数据,其中里边不能根据规则匹配完全的循环(初学者暂没时间研究做是做个记录方便自己)                                username = result[1].ToString();


一循环内替换:

            string regstr = @"(?i)[\<]td.*?[\>].*?(</td>)"; //提取页面所有TD内容            string regReplace = @"(?i)[\<]td.*?[\>]";    //将所有<td......> 替换成<td>            Regex reg = new Regex(regstr, RegexOptions.IgnoreCase | RegexOptions.Singleline);            MatchCollection mc = reg.Matches(data);            foreach (Match m in mc)            {                Console.WriteLine(m.Groups[0].ToString());                Console.WriteLine("------------------------------");                string s = Regex.Replace(m.Groups[0].ToString(), regReplace, "<td>", RegexOptions.IgnoreCase);             Console.WriteLine(s);                           }

二统一替换:

string regstr = @"(?i)[\<]td.*?[\>].*?(</td>)"; //提取页面所有TD内容            string regReplace = @"(?i)[\<]td.*?[\>]";    //将所有<td......> 替换成<td>            Regex reg = new Regex(regstr, RegexOptions.IgnoreCase | RegexOptions.Singleline);                       string s = Regex.Replace(data, regReplace, "<td>", RegexOptions.IgnoreCase);            MatchCollection mc = reg.Matches(s);            foreach (Match m in mc)            {                             Console.WriteLine(m.Groups[0].ToString());                Console.WriteLine("------------------------------");                                                  }


原创粉丝点击