频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

在vb.net中用正则表达式做复杂替换

来源:巧巧读书网 作者:douces 出处:巧巧读书 2008-01-16 进入讨论组
下一页 1 2 3 4 

【qqread前言】关于正则表达式的使用,网上很多的资料,而对使用正则表达式来匹配替换一些有规律却不相同的字符串的资料也有不少,但是却很少看到有关于使用MatchEvaluator委托来实现更加复杂的替换操作,

本文我们就以一个示例来了解下MatchEvaluator委托。

在字符编辑时,特别是网络数据的采集过程中,我们需要对一些有一定规律但是却不完全相同的数据或者字符进行替换操作,例如一段包含有Html代码的内容,我们可以使用正则表达式来匹配该文本中包含的Html代码,然后使用Replace方法来替换,但是如果我们需要保留"<img "这样的Html代码的话,我们该怎么做呢?

一般情况下,我们是先匹配Html代码的表达式,然后遍历匹配的结果集合MatchCollection,对比每个Match是否是"<img ",如果是则保留,不是则替换为空。如下步骤:

1、首先在类代码的最前面导入正则表达式的命名空间:

Imports System.Text.RegularExpressions

2、处理替换Html代码并保留"<img "代码的自定义函数为:

Public Function myReplace(ByVal Str As String) As String

'设置匹配公式

Dim strPattern As String = "<[^>]*>"

'声明一个不可变的正则表达式

Dim oRegex As New Regex(strPattern, RegexOptions.Multiline)

'声明一个表示返回的单个匹配值

Dim oMatch As Match

'声明一个表示所有匹配值得集合

Dim oMatches As MatchCollection

If oRegex.IsMatch(Str) = True Then

oMatches = oRegex.Matches(Str)

For Each oMatch In oMatches

Dim strTemp As String = oMatch.Value

If Strings.LCase(Strings.Left(strTemp, 4)) <> "<img" Then

Str = Strings.Replace(Str, strTemp, "", , 1)

End If

Next

End If

Return Str

End Function

文章地址: http://www.qqread.com/book/myvbnet/my0049.html 更多文章 更多内容请看.NET移动与嵌入式技术.NET开发手册专题,或进入讨论组讨论。
下一页 1 2 3 4 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章