You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA不支持正则正向后行断言,如何替代实现(?<=src="")匹配逻辑

VBA正则正向后行断言适配方案

VBA 内置的正则引擎基于 VBScript 实现,本身不支持正向后行断言语法,你需要的(?<=src="")匹配规则可以通过捕获组方案实现等价效果,无需改动原正则的其他匹配逻辑。

改写后的正则规则

将正向后行部分直接纳入匹配范围,把需要提取的目标内容放入第一个捕获组即可,改写后完整正则为:
src=""([\w-.]+)(?=/)?

VBA 调用示例

你可以通过如下代码实现匹配提取:

Function ExtractSrcValue(inputStr As String) As String
    Dim regEx As Object
    ' 后期绑定正则对象,无需提前引用库
    Set regEx = CreateObject("VBScript.RegExp")
    
    ' VBA 字符串中双引号需要用两个双引号转义,所以对应规则写为四个双引号
    regEx.Pattern = "src=""""([\w-.]+)(?=/)?"""
    regEx.IgnoreCase = True ' 根据需求调整是否忽略大小写
    regEx.Global = False ' 仅匹配第一个结果,需全局匹配可改为 True
    
    If regEx.Test(inputStr) Then
        ' 直接提取第一个捕获组的内容,和原正向后行断言的输出结果完全一致
        ExtractSrcValue = regEx.Execute(inputStr)(0).SubMatches(0)
    End If
End Function

效果验证

假设输入测试文本为 <img src=""demo.png/"" alt=""test"">,调用 ExtractSrcValue 函数得到的返回值为 demo.png,和原正则使用正向后行断言的匹配结果完全一致。


内容的提问来源于stack exchange,提问作者Enes ALTUN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:54:00