本次示例效果如下:

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

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

  1. PHP 中替换若干字符串字串为数组中的值,不用循环,非常高效

    替换某个字符串中的一个或若干个字串为数组中某些值 php本身有自带的函数,可以不用循环非常高效的实现其效果: 实例代码:   $phrase  = "You should eat fruit ...

  2. javascript replace正则替换时调用函数替换的使用

    以下函数将替换英文方式下的单引号和双引号,当然change函数编写决定了你要替换什么? String.prototype.repSpecChar=function()      {           ...

  3. javascript string replace 正则替换

    利用正则式实现首字母大写,丧心病狂是不是?好好的substr不用. JavaScript replace() 方法 r = /^(.)(?=.*)/; str = 'abc'; var str2 = ...

  4. Java replace() 方法 替换字符 也可用于 js 中

    JAVA中: public class Test { public static void main(String args[]) { String Str = new String("he ...

  5. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  6. Regex 正则替换指定范围全部字符串

    1.正则替换字符-------------------------------------------------------------------------------------------- ...

  7. 正则替换replace中$1的用法以及常用正则

    一.repalce定义 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. stringObject.replace(regexp/substr,replacement)参数一 ...

  8. 正则替换replace中$1的用法

    一.repalce定义 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 1 2 3 4 5 stringObject.replace(regexp/substr,repla ...

  9. 缓存需要注意的问题以及使用.net正则替换字符串的方法

    参考资料:http://www.infoq.com/cn/news/2015/09/cache-problems 正则替换字符串的简单方法: var regTableType = new Regex( ...

随机推荐

  1. 第三百零四天 how can I 坚持

    我以为我遇到了,却是痴心妄想啊.哪有那么好的事.其实也无所谓,淡定,却又有点不淡定了. 洗澡睡觉吧,明天还要上班呢. 应该摆脱这种状态. 什么都不想,放空.

  2. Xcode 4 插件制作入门

    转自:http://www.onevcat.com/2013/02/xcode-plugin/ 2014.5.4更新 对于 Xcode 5,本文有些地方显得过时了.Xcode 5 现在已经全面转向了 ...

  3. 【转】强大的vim配置文件,让编程更随意

    原文地址:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主 ...

  4. JSF 2.0 hello world example

    In this tutorial, we will show you how to develop a JavaServer Faces (JSF) 2.0 hello world example, ...

  5. [iOS基础控件 - 6.12.4] NavigationController vs TabBarController

    A.属性 1. Item NavigationController: navigationItem (不需要创建) title rightBarButtonItems/ rightBarButtonI ...

  6. flask前后台交互数据的几个思路

    通过url进行参数传递: @app.route('/hello/<name>') # <name>为传递的参数 def hello(name=None): return ren ...

  7. jQuery基础学习3——jQuery库冲突

    默认情况下,jQuery用$作为自身的快捷方式. jQuery库在其他库之后导入 在其他库和jQuery库都被加载完毕后,可以在任何时候调用jQuery.noConflict()函数来将变量$的控制权 ...

  8. C++中动态申请二维数组并释放方法

    C/C++中动态开辟一维.二维数组是非常常用的,以前没记住,做题时怎么也想不起来,现在好好整理一下. C++中有三种方法来动态申请多维数组 (1)C中的malloc/free (2)C++中的new/ ...

  9. Debug Tools

    .NET专用调试工具:MDBG .NET的死锁调试工具:ACorns.Debugging WinDBG+SOS(Windows平台下最强DeBug工具,是解决BUG的最后手段)

  10. mysql distinct

    mysql的DISTINCT的关键字有很多你想不到的用处1.在count 不重复的记录的时候能用到比如SELECT COUNT( DISTINCT id ) FROM tablename;就是计算ta ...