加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

利用正则表达式在EXCEL中查找/替换

(2013-12-13 13:51:30)
标签:

excel2010

分类: 计算机世界
有时需要对EXCEL中的有一定规律,但不相同的字符串进行替换,这时用基本的EXCEL查找/替换功能就无法实现了。比如希望将下图中的序列号(数字.)替换为空字符串,该如何实现呢?
这里可以利用VBA通过正则表达式进行查找并替换。代码如下:

Private Sub RegEx_Replace()

     Dim myRegExp As Object
     Dim Myrange As Range, C As Range

     Set myRegExp = CreateObject("vbscript.regexp")
     Set Myrange = ActiveSheet.Range("A1:A6")

     For Each C In Myrange
         myRegExp.Pattern = "^\d+.\s*"
         Set myMatches = myRegExp.Execute(C.Value)
         If myMatches.Count >= 1 Then
             Set myMatch = myMatches(0)
             C.Value = myRegExp.Replace(C.Value, "")
         End If         
     Next
End Sub

执行结果:

对于正则表达式的用法,在此不做赘述,可以参见:

其原理主要是通过创建正则式对象并执行相应的正则式以实现查找/替换的目的,过程如下:
  1. 声明正则式对象;
  2. 赋值给该对象,包括全局性、大小写模式、正则式内容;
  3. 执行正则表达式。
  4. 执行正则表达式时,我们有3种函数可用:Test、Execute、Replace。
正则式对象方法:
  • Test:检测目标文本与正则式是否匹配,返回True or False。
  • Execute:检测是否匹配,并返回匹配集合,供后续程序调用处理。
  • Replace:执行替换操作。在替换时,可以使用$1,$2等捕获变量,与常规的正则表达式意义相同

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有