分享

vb中使用正则表达式

 战神之家 2014-05-14

vb中使用正则表达式  

2011-05-18 20:55:09|  分类: Visual Basic |  标签:匹配  正则表达式  字符串  对象  布尔   |举报 |字号 订阅

正则表达式称得上是计算机领域的一项伟大的发明,它简单、优美、灵活而功能强大。正则表达式值得每一个程序员好好学习。当然学会正则是我的目标,但是我确实是只知道一点点皮毛。本文不是介绍如何写正则表达式,只是介绍几种在vb中运用正则表达式的方法。
一、详细知识点介绍
首先,要引用 Microsoft VBScript Regular Expressions 5.5,我们就可以声明RegExpMatchCollectionMatch 三个对象了。
RegExp :正则表达式匹配的主要对象。
属性
Pattern:一个字符串,用来定义正则表达式。
IgnoreCase:,则忽略英文字母大小的匹配,False对大小写进行匹配。
Global:设置一个布尔值或返回一个布尔值,该布尔值指示一个模式是必须匹配整个搜索字符串中的所有搜索项还是只匹配第一个搜索项。
MultiLine如果允许匹配多行文本,则multilinetrue,如果搜索必须在换行时停止,则为false 

方法:

    Execute:返回一个 MatchCollection 对象,该对象包含每个成功匹配的 Match 对象。
  Replace返回一个将匹配字符替换为指定字符的字符串。
  Test:返回一个布尔值,该值指示正则表达式是否与字符串成功匹配。

Match : 成功匹配的对象。

属性:
  FirstIndex:匹配对象所匹配字符串的起始位置。
  Length:匹配对象所匹配字符串的字符长度。
  SubMatches:匹配对象所匹配结果的子项。
  Value:匹配对象所匹配的值。

MatchCollection:集合对象,包含每个匹配成功的Match对象

属性:
  Count:匹配对象的总数。
  Item:匹配对象的索引。

二、具体实例

我写了一个类将使用这则表达式匹配字符串进行了封装。

vb中使用正则表达式 - 赵杰 - 赵杰的博客
 

例如:从字符串 "s3g3jlj5lj7" 查找 字符0-9 ,并将0-9字符替换成“数字”

正则表达式可以这样写 "[0-9]"

我这样进行测试

vb中使用正则表达式 - 赵杰 - 赵杰的博客

 上面的代码中少了一句输出的语句,使用label 将结果输出如下

执行结果为:

vb中使用正则表达式 - 赵杰 - 赵杰的博客

由于一个字符串中可能出现多处匹配成功的地方,所以我将匹配成功的字符串和 字符串出现的位置用冒号“:”分割。我们可以使用split 函数将字符串按照冒号拆分存放到数组里,方便使用。
 
当然有时我们并不需要如此复杂的操作,也许我们只需要判断字符串中是否还有数字、字符串是否全有数字组成、是否符合日期格式、是否是IP地址等等,类似的判断我们完全可以直接使用RegExpTest方法来实现。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多