正则匹配冒号_正则表达式之零宽度断言

我的目标:让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其服务。支持鹏哥,也为自己加油!

什么叫零宽断言,听起来好像很专业很复杂。

举个例子:

5818b1109a4efce24c8522b394e1f532.gif

如上图中,想在手机两个字的前面添加冒号和空格,前面我们学的正则表达式,能匹配出手机两字,然后我们能进行替换操作,但是如何在其前面插入内容呢?

这时候就出现了零宽断言,零宽断言不匹配任何一个字符或者字符串,它匹配的是一个位置,比如上例中手机的手字前面的位置,因为仅仅匹配的是个位置,宽度是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

每天进步一点,每天提升一点!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值