分享

学习VBA,报表做到飞 第四章 正则表达式 4.7 首尾匹配

 拾叁亿人 2023-04-05 发布于云南

第四章 正则表达式

4.7 首尾匹配

匹配行首:在正则表达式前面加乘方号^(不能放在[ ]里)

匹配行尾:在正则表达式后面加美元符$。

如:^\d+,只匹配在行首的数字

\d+$,只匹配在行尾的数字

在第二节 正则表达式的元字符和量词中,我们讲到了一个案例:

在55,76,1000,357,2500,12380中匹配4位数字:\d{4},有三个匹配结果:1000,2500,1238,其中数字12380被匹配到了1238。

现在我们加上首尾匹配,把正则表达式修改为^\d{4}$,这样12380就匹配不上了。(各位在正则表达式测试工具里测试的时候,需要一个数字一个数字的来匹配,否则会造成没有匹配结果。)

小程序:

把下表中的姓名提取出来,写到右边的单元格里。

钱大6498316,学生

赵二5678346,个体工商户

王小虎2395799,老师

李三7228663自由职业者

Sub 首尾匹配()

Dim reg As New RegExp

With reg

.Global = True

.Pattern = '^[一-龢]+'

For Each ss In Range('a1', Cells(Rows.Count, 1).End(xlUp))

ss.offset(0, 1) = .Execute(ss)(0)

Next

End With

End Sub

在这个表格里,因为姓名都在字符串的首端,所以用了行首匹配,这样只会匹配到姓名,而不会匹配到行尾的汉字。把匹配到的结果象数组一样提取出来,赋值给右边的单元格,最后得到如下结果:

钱大6498316,学生

钱大

赵二5678346,个体工商户

赵二

王小虎2395799,老师

王小虎

李三7228663自由职业者

李三

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多