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+ 匹配字母+数字
本文地址:http://xiaoguoguo.dbeile.cn/news/1018.html 多贝乐 http://xiaoguoguo.dbeile.cn/ , 查看更多- 曹德旺退掉美国绿卡:真正企业家不移民海外,要对国家与历史负责
- 2024春节观察丨春节前夕实探线下金店:每克609元也要买?
- 李佳琦直播带来的反思:普通女生为何应谨慎医美消费?
- 原创电子学生证代替手机进入校园的解决方案是什么?微幼科技
- 安利/吐槽|限薪令后内娱爱豆真实收入,大家可以根据名气猜一下自家花花大概赚多少
- 冲上热搜!李佳琦称不建议普通女生做医美
- 东鹏饮料营收净利实现双增,“存贷双高”与董秘年薪成焦点
- 被61岁白发不染的叶童惊艳到!穿紧身衣毫无赘肉,腰臀比简直逆天
- 东鹏特饮IPO:跟跑30年逆袭中国第一,能否反攻东南亚红牛大本营?
- 刘强东:京东高管降薪10%到20%,将投数百亿帮员工买房丨邦早报