vb.net 使用 Regex Replace 正则 替换 Html字串的table中tbody第一个tr下的td为th
本次示例效果如下:
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>
相关代码如下:
Imports System.Text.RegularExpressions
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox2.Text = ConvertFirstTrTdToTh(TextBox1.Text.Trim)
TextBox3.Text = ConvertFirstTrThToTd(TextBox2.Text.Trim)
End Sub
Public Function ConvertFirstTrTdToTh(ByVal strContent As String) As String
Dim strOld As String = strContent.Trim
'RegexOptions.Singleline 模式下 .代替任何字符 包括回车换行
Dim regexTable As New Regex("<tbody[^>]*>(.+?)</tr>", RegexOptions.Singleline)
Dim regexFirstTr As New Regex("<tr[^>]*>(.+?)</tr>", RegexOptions.Singleline)
Dim regexTd As New Regex("<td[^>]*>(?<tdContent>.+?)</td>", RegexOptions.Singleline)
For Each mTable As Match In regexTable.Matches(strOld)
Dim strFirstTr As String = regexFirstTr.Match(mTable.Value).Value
'For Each mTd As Match In regexTd.Matches(strFirstTr)
Dim strTdTh As String = regexTd.Replace(strFirstTr, "<th>${tdContent}</th>")
'Next
strOld = New Regex(strFirstTr).Replace(strOld, strTdTh, )
Next
ConvertFirstTrTdToTh = strOld
End Function
Public Function ConvertFirstTrThToTd(ByVal strContent As String) As String
Dim strOld As String = strContent.Trim
Dim regexTable As New Regex("<tbody[^>]*>(.+?)</tr>", RegexOptions.Singleline)
Dim regexFirstTr As New Regex("<tr[^>]*>(.+?)</tr>", RegexOptions.Singleline)
Dim regexTd As New Regex("<th[^>]*>(?<tdContent>.+?)</th>", RegexOptions.Singleline)
For Each mTable As Match In regexTable.Matches(strOld)
'Dim mgFirstTr As MatchCollection = regexFirstTr.Matches(mTable.Value)
Dim strFirstTr As String = regexFirstTr.Match(mTable.Value).Value
'For Each mTd As Match In regexTd.Matches(strFirstTr)
Dim strTdTh As String = regexTd.Replace(strFirstTr, "<td>${tdContent}</td>")
'Next
strOld = New Regex(strFirstTr).Replace(strOld, strTdTh, )
Next
ConvertFirstTrThToTd = strOld
End Function
End Class
vb.net 使用 Regex Replace 正则 替换 Html字串的table中tbody第一个tr下的td为th的更多相关文章
- PHP 中替换若干字符串字串为数组中的值,不用循环,非常高效
替换某个字符串中的一个或若干个字串为数组中某些值 php本身有自带的函数,可以不用循环非常高效的实现其效果: 实例代码: $phrase = "You should eat fruit ...
- javascript replace正则替换时调用函数替换的使用
以下函数将替换英文方式下的单引号和双引号,当然change函数编写决定了你要替换什么? String.prototype.repSpecChar=function() { ...
- javascript string replace 正则替换
利用正则式实现首字母大写,丧心病狂是不是?好好的substr不用. JavaScript replace() 方法 r = /^(.)(?=.*)/; str = 'abc'; var str2 = ...
- Java replace() 方法 替换字符 也可用于 js 中
JAVA中: public class Test { public static void main(String args[]) { String Str = new String("he ...
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
js replace 全局替换 js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...
- Regex 正则替换指定范围全部字符串
1.正则替换字符-------------------------------------------------------------------------------------------- ...
- 正则替换replace中$1的用法以及常用正则
一.repalce定义 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. stringObject.replace(regexp/substr,replacement)参数一 ...
- 正则替换replace中$1的用法
一.repalce定义 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 1 2 3 4 5 stringObject.replace(regexp/substr,repla ...
- 缓存需要注意的问题以及使用.net正则替换字符串的方法
参考资料:http://www.infoq.com/cn/news/2015/09/cache-problems 正则替换字符串的简单方法: var regTableType = new Regex( ...
随机推荐
- HDU1973 http://acm.hdu.edu.cn/showproblem.php?pid=1973
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<queue> #inc ...
- ASP.NET MVC中Session以及处理方式
转载原地址 http://www.cnblogs.com/darrenji/p/3951065.html
- HDU 4432 Sum of divisors (水题,进制转换)
题意:给定 n,m,把 n 的所有因数转 m 进制,再把各都平方,求和. 析:按它的要求做就好,注意的是,是因数,不可能有重复的...比如4的因数只有一个2,还有就是输出10进制以上的,要用AB.. ...
- js写的替换字符串(相当于js操作字符串的一个练习)
1.达到的效果 1./main_1.do,/left_1.do -> main:1,left:1 2./tbl_type/v_list_{id}.do -> tbl_type:list:{ ...
- Android改变了PDA市场格局
看到一则消息<联想PDA助力306医院智慧医疗建设>,看完后感慨颇多:"大象"终于开始踩"蚂蚁"了!虽然主观上感觉这种做法很不地道,同时为传统PDA ...
- 设计模式-结合Android代码
开始学设计模式 1 单例模式 单例模式可以说是最容易理解的模式了,也是应用最广的模式之一,先看看定义吧. 定义:确保单例类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这个唯一的实例. 什 ...
- 解决用Eclipse开发Android程序时不能生成R.java的问题
今天我照着Mars老师的视频教程开始学习Android程序开发. 但是,我的Eclipse死活不能生成R.java文件,新建的工程也不行. 然后我百度,百度出来的结果一般是说这样解决: 1.clean ...
- Codeforces Testing Round #12 C. Subsequences 树状数组维护DP
C. Subsequences Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/597/probl ...
- codeforce447 D SGU 548 贪心+优先队列
codeforce447 D - DZY Loves Modification 题意:有一个n*m的矩阵,每次可以选择一行或者一列,可以得到这行或这列的所有元素sum的积分,然后使这一列/行的每一个元 ...
- IOS键盘弹出、隐藏
IOS键盘 UIKeyboardFrameBeginUserInfoKey:动画开始前键盘的size UIKeyboardFrameEndUserInfoKey:动画结束后键盘的size - (voi ...