第四章 正则表达式 4.7 首尾匹配 匹配行首:在正则表达式前面加乘方号^(不能放在[ ]里) 匹配行尾:在正则表达式后面加美元符$。 如:^\d+,只匹配在行首的数字 \d+$,只匹配在行尾的数字 在第二节 正则表达式的元字符和量词中,我们讲到了一个案例: 在55,76,1000,357,2500,12380中匹配4位数字:\d{4},有三个匹配结果:1000,2500,1238,其中数字12380被匹配到了1238。 现在我们加上首尾匹配,把正则表达式修改为^\d{4}$,这样12380就匹配不上了。(各位在正则表达式测试工具里测试的时候,需要一个数字一个数字的来匹配,否则会造成没有匹配结果。) 小程序: 把下表中的姓名提取出来,写到右边的单元格里。
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 在这个表格里,因为姓名都在字符串的首端,所以用了行首匹配,这样只会匹配到姓名,而不会匹配到行尾的汉字。把匹配到的结果象数组一样提取出来,赋值给右边的单元格,最后得到如下结果:
|
|