四时宝库

程序员的知识宝库

EXCEL正则表达式中的或(正则表达式在excel函数的应用)

前面一节中我们讲过在正则表达式中 a|b 表示匹配a或者是b,同样 [ab]

也表示匹配a或者b,而非匹配ab。


[0-9]表示匹配0-9中任意一个数字,[234]表示匹配2或者是3或者是4.


也就是说表达或的关系 可以用“|”,也可以用[]。


下面我们看下具体的例子:



左边单元格中的数据以空格区分,希望根据空格拆分到右边的单元格。


代码:

Sub 拆分()

Dim regx As Object, rng As Range, mat, m, n%

Set regx = CreateObject("vbscript.regexp")

With regx

.Global = True

.Pattern = "[0-9]+"

For Each rng In [a1:a6]

Set mat = .Execute(rng)

For Each m In mat

n = n + 1

Cells(rng.Row, n + 1) = m

Next

n = 0

Next

End With

End Sub


.Pattern = "[0-9]+"表示匹配0-9的之间的任意一个数字,“+”号表示匹配数字一次或者是多次,这样就把每个以空格分割开的数字全匹配出来。


当然我们也可以写成 .Pattern = "\d+"。


[0-9a-zA-z]表示从0-9任意数字、a到z任意字母,或者A到Z任意字母。

转自:米宏Office

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接