返回首页
当前位置: 首页 > VB.NET教程 >

vb.net 使用 Regex Replace 正则 替换 Html字串的table中tbody第一个tr下的td为th

时间:2013-08-15 14:14来源:未知 作者:admin 点击:我要投稿  高质量的ASP.NET空间,完美支持1.0/2.0/3.5/4.0/MVC等

本次示例效果如下:

TextBox1中输入如下字符串:

12<table><tbody><tr><td>1<br/>11</td><td>a</td></tr><tr><td>2</td><td>b</td></tr></tbody></table>

34<table><tbody><tr><td>3</td><td>c</td></tr><tr><td>4</td><td>d</td></tr></tbody></table>

点击按钮, 转换第一个tr下面的td为tr 将TextBox1中的table中第一个tr下面的td 转换成th ,将结果显示在TextBox2中

12<table><tbody><tr><th>1<br/>11</th><th>a</th></tr><tr><td>2</td><td>b</td></tr></tbody></table>

34<table><tbody><tr><th>3</th><th>c</th></tr><tr><td>4</td><td>d</td></tr></tbody></table>

转换第一个tr下面的tr为td 将TextBox2中的table中第一个tr下面的th 转换成td ,将结果显示在TextBox3中

12<table><tbody><tr><th>1<br/>11</th><th>a</th></tr><tr><td>2</td><td>b</td></tr></tbody></table>

34<table><tbody><tr><th>3</th><th>c</th></tr><tr><td>4</td><td>d</td></tr></tbody></table>

相关代码如下:
 

  1. Imports System.Text.RegularExpressions   
  2.  
  3.  
  4. Public Class Form1  
  5.  
  6.  
  7.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
  8.  
  9.         TextBox2.Text = ConvertFirstTrTdToTh(TextBox1.Text.Trim)  
  10.  
  11.         TextBox3.Text = ConvertFirstTrThToTd(TextBox2.Text.Trim)  
  12.  
  13.     End Sub  
  14.  
  15.  
  16.    Public Function ConvertFirstTrTdToTh(ByVal strContent As String) As String          
  17.  
  18.    Dim strOld As String = strContent.Trim  
  19.  
  20.         'RegexOptions.Singleline 模式下 .代替任何字符 包括回车换行          
  21.  
  22.   Dim regexTable As New Regex("<tbody[^>]*>(.+?)</tr>", RegexOptions.Singleline)   
  23.  
  24.   Dim regexFirstTr As New Regex("<tr[^>]*>(.+?)</tr>", RegexOptions.Singleline)          
  25.  
  26.   Dim regexTd As New Regex("<td[^>]*>(?<tdContent>.+?)</td>", RegexOptions.Singleline)  
  27.  
  28.         For Each mTable As Match In regexTable.Matches(strOld)  
  29.  
  30.             Dim strFirstTr As String = regexFirstTr.Match(mTable.Value).Value  
  31.  
  32.             'For Each mTd As Match In regexTd.Matches(strFirstTr)              
  33.  
  34.     Dim strTdTh As String = regexTd.Replace(strFirstTr, "<th>${tdContent}</th>")              
  35.  
  36.     'Next  
  37.  
  38.             strOld = New Regex(strFirstTr).Replace(strOld, strTdTh, 1)  
  39.  
  40.         Next  
  41.  
  42.         ConvertFirstTrTdToTh = strOld       
  43.  
  44. End Function  
  45.  
  46.  
  47.     Public Function ConvertFirstTrThToTd(ByVal strContent As String) As String          
  48.  
  49.   Dim strOld As String = strContent.Trim  
  50.  
  51.       Dim regexTable As New Regex("<tbody[^>]*>(.+?)</tr>", RegexOptions.Singleline)   
  52.  
  53.   Dim regexFirstTr As New Regex("<tr[^>]*>(.+?)</tr>", RegexOptions.Singleline)          
  54.  
  55.   Dim regexTd As New Regex("<th[^>]*>(?<tdContent>.+?)</th>", RegexOptions.Singleline)  
  56.  
  57.         For Each mTable As Match In regexTable.Matches(strOld)  
  58.  
  59.             'Dim mgFirstTr As MatchCollection = regexFirstTr.Matches(mTable.Value)  
  60.  
  61.             Dim strFirstTr As String = regexFirstTr.Match(mTable.Value).Value  
  62.  
  63.             'For Each mTd As Match In regexTd.Matches(strFirstTr)              
  64.  
  65. Dim strTdTh As String = regexTd.Replace(strFirstTr, "<td>${tdContent}</td>")             
  66.  
  67.   'Next  
  68.  
  69.             strOld = New Regex(strFirstTr).Replace(strOld, strTdTh, 1)  
  70.  
  71.         Next  
  72.  
  73.         ConvertFirstTrThToTd = strOld      
  74.  
  75.  End Function  
  76.  
  77. End Class 

 

本站推荐文章:
本站热点文章:
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色 情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片