先来看一个案例: 如上图:序号和后面的标题写在了一起,有的序号是一位数字,有的是两位数字,有的是三位数字,还有五位数字的。另外,序号和标题之间有的是顿号连接、有的是冒号连接,有的是空格,还有的没有任何分割符号直接连接在一起的。现在需要把后面的标题提取出来。 根据我们前面几节学习的知识,我们只要利用一个表达式把标题前面的数字和分割符号匹配出来,然后替换为空白就可以了。 元字符“\d”表示数字,数字位数不确定,我们用量词“ ”来匹配多位数字,这样数字部分就可以匹配出来了。 数字与标题之间的空格、冒号、顿号怎么表示呢? 我们可以用[ :、]来表示,类似[a-z]表示a到z的字母,[123]表示1或者2或者3,这样的表达方式就叫字符组,由一些字符组成一个集合,表示匹配该集合中任意一个字符。 因为有的序号和标题之间直接相连,所以我们用“\d [ :、]?”,量词?表示出现0次或1次,出现0次就代表啥都没有,也就是序号和标题直接相连的情况。 上面的案例代码如下: Sub 拆分() Dim regx As Object, rng As Range, n Set regx = CreateObject('vbscript.regexp') With regx .Global = True .Pattern = '\d [、: ]?' For Each rng In [a1:a12] n = n 1 Cells(n, 2) = .Replace(rng, '') Next End With End Sub 字符组在前几节的内容中也出现过,在这节我们提了下它的概念,让大家知道到底是个啥玩意。 今天的分享就到这里了! 想更深入的学习视频教程,请进入公众号后台菜单中了解详情! |
|