C# 处理html 标签一些正则表达式 整理收集

xiaoxiao2021-02-28  120

1:取得A 标签中的内容或者 url title <a href='javascript:open_window("http://xx/F/F987K71CHH3JEBIG788IQ2BTRSULYAIY2PFXEXGBB7Q5614QM1-05893?func=service&doc_number=007838178&line_number=0011&service_type=TAG");'>岛上书店 [专著] = The storied life of A.J.Fikry</a> (?is)<a\s+href=(['"])(?:(?![<>]|\1).)+\1>(?<text>(?:(?!</?a).)+) (?is)(?<=<a\s+href=[^>]+>)((?!</?a).)+

<a\s*[^>]*>([\s\S]+?)</a>

@"(?is)<a[^>]*?id=""rptData_lnkQuerySub_0""[^>]*?>([\s\S].*?)</a>"

//替换掉A标签 var billno = Regex.Replace(item.WorldexSinotrans[1], @"<a(?:(?!href=).)*href=(['""]?)(?<url>[^""'\s>]*)\1[^>]*>(?<text>(?:(?!</a>).)*)</a>", "", RegexOptions.None); var repA = Regex.Matches(repImg, @"<A\s*[^>]*>([\s\S]+?)</A>")     .Cast<Match>().Select(mx => mx.Groups[0].Value.Trim().TrimStart().TrimEnd()).ToList();//Groups根据情况取0/1 2:替换 html 中有img情况 <img alt="Link" src="http://xxx/exlibris/aleph/u20_1/alephe/www_f_chi/icon/f-separator.gif" border="0"> var repImg = Regex.Replace(value[0].ToString(), @"<img\s+[^>]*\s*src\s*=\s*([']?)(?<url>\S+)'?[^>]*>", "", RegexOptions.None); 3:取得form 中的url  action 等值 <form method=get name=form1 action="http://xxx/F/7I82M4CLHLI12T96I5C26VMVRFAGUTHS2181BYCG6TLYDRPHHR-17822" οnsubmit="return presearch(this);"> var resultAction = Regex.Matches(GetReturnHtml(Url), @"<form method=get name=form1\s*[^>]*action=""([\s\S]+?)""[^>]*?>") //@"<form method=get name=form1\s*[^>]*action=""([\s\S]+?)"">.*</form>").Cast<Match>().Select(mx => mx.Groups[1].Value.TrimStart().TrimEnd()).ToList(); 4:直接获取table下面所有的tr td <table id="td" width="90%" style="margin:0 auto;" border="0" cellspacing="2"> <tr> <td style="background:#fff;" class=td1 align=left >      20160530d2016 em y0chiy50 ea   </td> </tr></table> var tableid = @"id=""td""";

Regex reg = new Regex("(?is)(?<=<table[^>]*?" + tableid + "[^>]*?>(?:(?!</?table).)*)(?is)<tr[^>]*?>(?:\\s*<td[^>]*?class=td1[^>]*?>(.*?)</td>)*\\s*</tr>");

@"(?is)<table[^>]*?" + regexTableParm + "[^>]*?>([\\s\\S].*?)</table>"

5:直接获取tr 里面的内容

 var compare = Regex.Match(mTable.Value, "(?is)<tr " + classParm + ">(?:\\s*<td[^>]*>(.*?)</td>)*\\s*((?!</tr>).)*").Groups[0].Value.Trim();//.Groups[1].Value.Trim();

6:直接获取td 里面的内容 <td style="background:#fff;" class=td1 align=left >      20160530d2016 em y0chiy50 ea   </td> var value = Regex.Matches(m.Value, @"(?<=<td[^>]*?class=td1 align=left[^>]*?>)([\s\S]+?)(?=</td>)")                          .Cast<Match>().Select(mx => mx.Groups[0].Value.Trim().TrimStart().TrimEnd()).ToList(); //(\s+scope=[^>]+)?(\s+class=[^>]+)?>)    匹配td 里面内容class var td = Regex.Matches(m.Value, @"(?<=<td(\s+scope=[^>]+)?(\s+class=[^>]+)?>)([\s\S]+?)(?=</td>)")// @"(?<=<td>)\r\n\s+[\s\S]*?\r\n\s+(?=</td>)")

                             .Cast<Match>().Select(mx => mx.Groups[0].Value.Trim().TrimStart().TrimEnd()).ToList();

@"(?is)(?<=<td(\s+align=[^>]+)?>).*?(?=\s*</td)"

@"(?is)(?<=<td(\s+class=[^>]+)?>).*?(?=\s*</td)"

7:里面有font字体的

var td = Regex.Matches(m.Value, @"(?<=<font(\s+color=[^>]+)?>).*?(?=</font>)").Cast<Match>().Select(mx => mx.Groups[0].Value).ToList();

8:获取html页面中隐藏hidden

        var result = Regex.Matches(response.Content.ReadAsStringAsync().Result, @"<input type=""hidden""[^>]*?.*?\/>")                                     .Cast<Match>().Select(mx => mx.Groups[0].Value.TrimStart().TrimEnd()).ToList();

/获取 隐藏域中的 id  value                 //var reg = @"(?isn)<input((?!([<>]|id=)).)+id=""(?<id>[^""<>]+)""[^<>]*?value=""(?<value>[^<>""]*)""";                 //    var keyvalue = Regex.Match(item, reg);                 //returnHidden.Add(keyvalue.Groups[1].Value, keyvalue.Groups[2].Value);                 var key = Regex.Match(item, @"<input type=""hidden""[^>]*?[^>]+?id=""([\s\S]+?)""[^>]+>").Groups[1].Value;                 var value = Regex.Match(item, @"<input type=""hidden""[^>]*?[^>]+?value=""([\s\S]+?)""[^>]+>").Groups[1].Value;

9:获取html页面中 body里面的内容

var resultStr = Regex.Matches(DelHTML(retString), @"(?is)<body[^>]*?>([\s\S].*?)</body>")                                             .Cast<Match>().Select(mx => mx.Groups[0].Value.TrimStart().TrimEnd()).ToList();

转载请注明原文地址: https://www.6miu.com/read-19036.html

最新回复(0)