1. 程式人生 > >C# 處理html 標籤一些正則表示式 整理收集

C# 處理html 標籤一些正則表示式 整理收集

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");'>島上書店&nbsp;[專著]&nbsp;=&nbsp;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" onsubmit="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&nbsp;em&nbsp;y0chiy50&nbsp;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&nbsp;em&nbsp;y0chiy50&nbsp;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();


相關推薦

C# 處理html 標籤一些表示式 整理收集

1:取得A 標籤中的內容或者 url title <a href='javascript:open_window("http://xx/F/F987K71CHH3JEBIG788IQ2BTRSULYAIY2PFXEXGBB7Q5614QM1-05893?func=se

js獲取富文字中的第一張圖片url公式及去除字串裡面的html標籤公式

js獲取富文字中的第一張圖片url正則公式及去除字串裡面的html標籤 後臺發來一個富文字字串裡面可能包含了0、1、2、3…個圖片標籤(img),我們的任務是獲取這個字串裡面第一張圖片的url,如果沒有圖片則返回空 var imgUrlFun = function(str){

C++11新特性(74)-表示式庫(regular-expression library)

正則表示式(regular expression)是一種描述字元序列的方法,從C++11起,C++正則表示式庫(regular-expression library)成為新標準庫的一部分。 由於正則表示式本身就是一個非常龐大的系統,本文只介紹C++中使用正則表示式的小例子,淺嘗輒止。 基

常用的必要的一些表示式

1 . 校驗密碼強度 密碼的強度必須是包含大小寫字母和數字的組合,不能使用特殊字元,長度在8-10之間。 ^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 2. 校驗中文 字串僅能是中文。 ^[\\u4e00-\\u9fa5]{0,}$ 3

C語言實現簡化的表示式

語法: 正則表示式和待匹配字串都是一行 “^” 標記正則表示式的開始 “$” 標記正則表示式的結束 “*” 匹配前面的子表示式零次或多次 “+” 匹配前面的子表示式一次或多次 “?” 匹配前面的子表示式零次或一次, 當該字元緊跟在任何一個其他限制符(*,+,?

只保留p和img標籤表示式

js中使用,保留了標籤中的屬性content = content.replace(/<(?!\/?p|\/?IMG)[^<>]*>/ig,'');js中使用,去除img標籤中的style屬性content = content.replace(/styl

C# 驗證數字、小數表示式

"^\d+$" //非負整數(正整數 + 0) "^[0-9]*[1-9][0-9]*$" //正整數 "^((-\d+)|(0+))$" //非正整數(負整數 + 0) "^-[0-9]*[1-9][0-9]*$" //負整數 "^-?\d+$" //整數 "^\d+(\.\d+)?$" //非負

python異常處理與除錯,表示式

####異常處理與除錯#### 1.cacl包裡沒加if __name__ == "__main__":時,hell.py在呼叫mun中的方法時,會執行mun中的print,加了之後則沒有。 2.錯誤 •有的錯誤是程式編寫有問題造成的,比如本來應該輸出整數結果輸出了字元

提取最外層配對標籤,放棄表示式-平衡組

public List<string> 提取最外層配對標籤(string 字串) { List<string> html標籤 = new List<string>(); //===========

C#:日期和時間的表示式

using System.Text.RegularExpressions; /// <summary> ///是否為日期型字串 /// </summary> /// <param name="StrSource"> yyyy-MM-dd,

JavaScript表示式整理

只能輸入字串為數字:“^[-+]?[0-9]+\.[0-9]+$” 只能輸入數字:"^[0-9]*$" 只能輸入 n 位的數字:"^\d{n}$" 只能輸入至少 n 位的數字:"^\d{n,}$" 只能輸入 m ~ n 位的數字:"^\d{m,n}$" 只能輸入零和非零開頭

Python表示式整理

Python正則表示式整理 一、正則表示式介紹 在不使用正則表示式的情況下,我們想要實現字串的匹配就必須要單獨的建立一個函式,通過呼叫函式來實現;為了減少程式碼的編寫,我們不妨將這些函式抽象出來,成為一個規則。 正則表示式概念 1、使用單個字串來描述匹配一系列符合某個句法規

常用的表示式整理【轉載,防丟失】

轉載文章,好資源,防丟失。原文連結: http://blog.cspojie.cn/2017/09/26/常用的正則表示式整理/ 一、校驗數字的表示式 1 數字: ^[0-9]$ 2 n位的數字: ^\d{n}$ 3 至少n位的數字: ^\d{n,}$ 4 m-n位的數字:^

常用的 JS表示式整理

一、校驗數字的表示式 1 數字:^[0-9]*$ 2 n位的數字:^\d{n}$ 3 至少n位的數字:^\d{n,}$ 4 m-n位的數字:^\d{m,n}$ 5 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 6 非零開頭的最多帶兩位小數的數字:^([

十二,表示式整理

基本符號: ^  表示匹配字串的開始位置  (例外  用在中括號中[ ] 時,可以理解為取反,表示不匹配括號中字串) $  表示匹配字串的結束位置 *  表示匹配 零次到多次 +  表示匹配 一次到多次 (至少有一

Android 常用表示式整理

前言 閒扯一下,已經有好久沒更新部落格了,記得上一篇部落格的更新時間為 2017-05-12 15:20。截止到今天,超過一百天沒更新了。 這篇部落格的內容大多數是從別的部落格摘抄過來的,寫這篇部落格的目的主要是整理正則表示式的文章,方便日後檢視。 java 正則表示式常用的字元說明常用的正則表示式java

C#表示式提取HTML中IMG標籤的SRC地址

原文:http://blog.csdn.net/smeller/article/details/7108502 一般來說一個 HTML 文件有很多標籤,比如“<html>”、“<body>”、“<table>”等,想把文件中的 img 標籤提取出來並不

C# 表示式html匹配input標籤及匹配input的value及獲取aspnet頁面VIEWSTATE、EVENTVALIDATION的UI狀態儲存值

1、使用正則表示式從html內容中獲取 input 標籤,然後從 input 標籤中獲取屬性值; 也可以使用正則表示式捕獲組獲取value,在2中說明 using System.Text.RegularExpressions; string excelHtml = divMX.Inne

在Python中使用表示式去掉字串裡的html標籤

有時候會獲得一些帶html標籤的字串,需要把html標籤去掉,獲得乾淨的字串,這時候可以使用正則表示式。 程式碼如下: import re htmeString = '''    <ul id="TopNav">    &nbs

C# 表示式一些語法筆記

基礎語法看這裡:正則表示式語法 下面是一些其他要注意的點…… 反斜槓 + 元字元 表示匹配元字元本身。 eg:元字元 . 表示除換行符以外的任意字元,而 \. 表示匹配 . 。 一般定義正則表示式字串時會加上 @,表示不轉義。 eg:string patt