当前位置:编程学习 > C#/ASP.NET >>

帮忙匹配一个简单的正则表达式,非常感谢

<tbody id="tdata">
   <tr class="t_tr1">
   。。。。。。
   。。。。。。
   <tr class="t_tr1">
</tbody>


我要tbody中间的内容,谢谢大侠们帮忙 帮忙匹配一个简单的正则表达式,非常感谢 正则表达式 class --------------------编程问答-------------------- string str=@"<tbody id="tdata">
   <tr class="t_tr1">
   。。。。。。
   。。。。。。
   <tr class="t_tr1">
</tbody>";

str=new Regex("\\s").Replace(str,"");
string ret=new Regex("<tbody id=\\"tdata\\">(.*?)</tbody>").Match(str).Group[1].value; --------------------编程问答--------------------
string str=@"<tbody id=""tdata"">
                       <tr class=""t_tr1"">
                       。。。。。。
                       。。。。。。
                       <tr class=""t_tr1"">
                    </tbody>";

                str=new Regex("\\s").Replace(str,"");
                string ss=new Regex("<tbodyid=\"tdata\">(.*?)</tbody>").Match(str).Groups[1].Value;
                Console.WriteLine(ss);
                Console.ReadLine();
--------------------编程问答--------------------

(?<=<tbody id="tdata">).*(?=</tbody>)
--------------------编程问答-------------------- string pattern=@"(?is)(?<=<tbody[^>]*?id=[""']tdata[""'][^>]*>).*?(?=</tbody>)"; --------------------编程问答--------------------
string pattern = @"<table[^>]+id=(?<quote>[""'])tdata\k<quote>[^>]*>(?<innerHtml>[\s\S]*?)</tdata>";

Regex regex = new Regex(pattern , RegexOptions.Compiled);
Match match = regex.Match(original);
return match.Groups["innerHtml"].Value;
--------------------编程问答-------------------- 写错了。是这个

string pattern = @"<tbody[^>]+id=(?<quote>[""'])tdata\k<quote>[^>]*>(?<innerHtml>[\s\S]*?)</tbody>";
 
Regex regex = new Regex(pattern , RegexOptions.Compiled);
Match match = regex.Match(original);
return match.Groups["innerHtml"].Value;
--------------------编程问答-------------------- 各位老大我测试了你们写的正则表达式,可是没有匹配到,返回空的 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 4 楼 hjywyj 的回复:
string pattern=@"(?is)(?<=<tbody[^>]*?id=[""']tdata[""'][^>]*>).*?(?=</tbody>)";



匹配不到内容 --------------------编程问答--------------------

引用 9 楼 q308720227 的回复:
引用 4 楼 hjywyj 的回复:string pattern=@"(?is)(?<=<tbody[^>]*?id=[""']tdata[""'][^>]*>).*?(?=</tbody>)";


匹配不到内容

这个没有吗?
试试这个(?is)(?<=<tbody id="tdata">).*?(?=</tbody>)
再不行你把你那完整的内容发出来看看 --------------------编程问答-------------------- (?is)(?<=<tbody[^>]*?id=[""']tdata[""'][^>]*?>).*?(?=</tbody>) --------------------编程问答--------------------
引用 9 楼 q308720227 的回复:
匹配不到内容

给出测试数据 --------------------编程问答--------------------
引用 12 楼 hjywyj 的回复:
引用 9 楼 q308720227 的回复:
匹配不到内容
给出测试数据



  HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(www);
                request.CookieContainer = new CookieContainer();
                request.Method = "GET";

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
                
                if (null != sr)
                {
                    //string pattern = @"<a(?:\s*?)href=['|""](?<url>[\s\S]+?)['|""]>(?<title>[\s\S]+?)</a>";
                    string pattern = @"(?<=<tbody id=(?<quote>[""'])tdata\k<quote>[^>]*>).*(?=</tbody>)"; 
                    //string pattern = @"<tbody[^>]+id=(?<quote>[""'])tdata\k<quote>[^>]*>(?<innerHtml>[\s\S]*?)</tbody>";
                    //System.Text.RegularExpressions.MatchCollection matchs = System.Text.RegularExpressions.Regex.Matches(sr.ReadToEnd(), pattern);
                    Regex regex = new Regex(pattern, RegexOptions.Compiled);
                    string str = "";
                    str = sr.ReadToEnd();
                    Match match = regex.Match(str);

                    string zfc33 = match.Groups["innerHtml"].Value;
                    
                    //if (matchs.Count <= 0)
                    //    MessageBox.Show("没有匹配项");
                    //else
                    //{
                    //    for (int i = 0; i < 50; i++)
                    //    {
                    //        MessageBox.Show("链接:" + matchs[i].Groups["url"].Value + "___名称:" + matchs[i].Groups["title"].Value + "<br />");
                    //    }
                    //}
                }
--------------------编程问答-------------------- 上面你们写的表达式我都试过
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,