1、正则表达式能干什么呢? 你肯定用过 excel 的“查找”、“替换”功能。正则表达式也可以对字符串进行特定的复杂查找和替换,但它比“查找”和“替换”功能强大的多的多。 正在看蓝桥玄霜版主的字典帖,选了其中的两个例子(附件中的例 A 和例 B),你看到的第一反应是用字典去解决,例 A 和例 B 使用正则表达式也很好的解决了问题。(给出这两个例子不是说正则表达式比字典好,只是借此体会正则表达式的强大功能)例 1、有如下一组电话号码,如何改变成右侧的样式。(020)12345678 020—12345678(021)32145678 021—32145678(0371)45678129 0371—45678129(0392)1234567 0392—1234567(010)21458965 010—21458965(0393)45987636 0393-45987636(0372)87654321 0372-87654321你想到用查找—替换功能解决的方法了吗?利用正则表达式很容易实现。Private Sub CommandButton1_Click()Dim regEX As New RegExp‘定义一个正则表达式对象regEX。Pattern = ”\((\d{3,4})\)(\d{7,8})"‘设置正则表达式For i = 1 To 7 Range(”c" & i) = regEX。Replace(Range(”a” & i), ”$1-$2")NextEnd Sub2、什么是正则表达式? 简单的说,正则表达式就是一个由一组具有特别含义的字符组成的字符串,(如例中的” \((\d{3,4})\)(\d{7,8})"),这些有特别含义的字符设置了一些条件,并通过 regEX.Pattern = "\((\d{3,4})\)(\d{7,8})”这一句告诉查找引擎,根据它规定的条件查找符合要求的字符串.再看一个简单的例子:例 2,把字符串“这有一本关于 VBA 的书,它在第二个书柜里"里的书换为“book”.Private Sub CommandButton2_Click()Dim regEX As New RegExpregEX.Global = True‘设置查找返回全部匹配regEX.IgnoreCase = FALSE‘设置查找不区分大小写 regEX。Pattern = ”书"Range("a12") = regEX.Replace("这有一本关于 VBA 的书,它在第二个书柜里”, "book”)End Sub3、正则表达式的工作原理 我们需要找出目标字符串中所有的“书”字,根据我们的要求写出正则表达式:”书”,通过 regEX.Pattern = "书"这句把我们的要求以正则表达式的形式告诉查找引擎(本例中正则表达式规定的条件很简单:符合要求的字符串必须是字符“书”),查找引擎从目标字符串的第一个字符开始查找,找到符合正则表达式要求的字符串后就存储起来,然后继续向后查找直到结束。最后...