Sub test()
Dim ss As Range, sj, n
Set reg = CreateObject('vbscript.regexp') '正则表达式后期绑定
With reg
.Global = True '全局匹配True,默认为false
.Pattern = 'd+.?d?' '指定匹配模式
For Each ss In Range('a2', Cells(Rows.Count, 1).End(xlUp)) '循环指定区域的数值
Set sj = .Execute(ss) '对()内的字符执行正则表达式搜索
For Each ss1 In sj
n = n + 1
ss.Offset(0, n) = ss1
Next ss1
n = 0
Next ss
End With
End Sub
如需匹配别的模式,更改代码中的红色字体即可。
匹配模式说明:
下面例举一些常用的元字符:(注意大小写之分)
d 匹配所有单个数字字符(可以代替[0-9],但不能取代),d+匹配在一起的数字
D 匹配单个数字以外的字符(包括字母,汉字,空格,下划线,各类符号。可以替代[a-zA-Z],但不能取代)(只匹配汉字[一-龢]或[一-龥])
w 匹配:下划线、单个字母、汉字、数字。[A-Za-z0-9_]
W 匹配任何非单词字符(包括空格、各类符号、但不能识别下划线)
s 匹配任何空白字符,包括空格、制表符、换行符等等,眼睛看不见的。
S 匹配任何非空白字符,眼睛能看见的都匹配。
b 匹配一个单词边界,也就是指单词和空格间的位置(不支持汉字)
B 匹配非单词边界
匹配一个换行符
匹配一个回车符
匹配一个制表符(Tab键)
. 匹配除' '之外的任何单个字符。
.只匹配.
正则表达式中的量词如下:
? 匹配零次或一次。
+ 匹配一次或多次。
* 匹配零次或多次。
上下限:{下限,上限}
{n} 匹配n次。
{n,} 匹配至少n次,无上限。
{n,y} 匹配n次到y,y>n。
常用举例:
d+.?d? 匹配数字或小数点:36.5,36,3,3.66
d{4,} 匹配4位数以上的数字
[a-zA-Z]+d+ 匹配字母+数字
以上就是本篇文章【Excel-VBA代码,用正则表达式提取关键字】的全部内容了,欢迎阅览 ! 文章地址:http://xiaoguoguo.dbeile.cn/news/1018.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 多贝乐移动站 http://xiaoguoguo.dbeile.cn/mobile/ , 查看更多