我的目标:让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其服务。支持鹏哥,也为自己加油!
什么叫零宽断言,听起来好像很专业很复杂。
举个例子:
如上图中,想在手机两个字的前面添加冒号和空格,前面我们学的正则表达式,能匹配出手机两字,然后我们能进行替换操作,但是如何在其前面插入内容呢?
这时候就出现了零宽断言,零宽断言不匹配任何一个字符或者字符串,它匹配的是一个位置,比如上例中手机的手字前面的位置,因为仅仅匹配的是个位置,宽度是0,所以叫做零宽度断言,断言即是预测的意思嘛。
经过上面的解释,大家就很好理解了,那我们来看下零宽断言该怎么写?
先看下上例中的代码:
Sub lkdy()Dim regx As Object, rng As Range, n%Set regx = CreateObject("vbscript.regexp")With regx .Global = True .Pattern = "(?=手)" For Each rng In [A2:A15] n = n + 1 Cells(n + 1, 2) = .Replace(rng, ": ") NextEnd WithEnd Sub
向右滑动可以查看完整代码
比如上例中 Pattern = "(?=手)",一个问号和一个等号,后面加正则表达式,很好理解,就是问这个位置的后面是否等于手字。
零宽断言的语法:
(?=exp),也叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式。
通过这节课我们初步了解了零宽断言,后面我们再仔细剖析零宽断言的种类。
本节的分享就到这里,鹏哥祝大家每天都有进步。
加入米宏Office培训群,每天进步一点点!
从基础操作到VBA,
两杯咖啡的钱,
换取一份如此详细的Excel视频资料,
你还在犹豫?
欲购从速,联系微信号:527240310
每天进步一点,每天提升一点!