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

使用VBScript Regular Expressions 5.5的VBA程序突然崩溃求助

VBScript正则表达式5.5底层断言失败导致VBA项目崩溃

我有一个已稳定运行10至15年的复杂VBA项目,此前从未出现问题。但今日该项目突然崩溃,弹出非VBA错误提示,推测问题与VBScript Regular Expressions 5.5引用的底层代码相关:

Microsoft Visual C++ Runtime Library
Assertion failed!
Program: ...
File: g:\vba\src\65_VC8\VBA\rt\regexpbase.cxx
Line: 2063

Expression: ibLim == m_ibMin
有关程序引发断言失败的信息,请参阅Visual C++文档中的断言相关内容
(按重试可调试应用程序 - 需启用JIT)
[中止] [重试] [忽略]
MSVCR错误对话框:断言失败

以下代码片段可在我的计算机上复现问题(此代码使用早期绑定,但使用晚期绑定也会出现相同错误):

Option Explicit
Sub due()
    Dim RE As RegExp
    
Const sPATepi As String = "(?!.*sample)\\([^\\]+)\\(S\d\d(?:E\d{2,3}(?:-E?\d{2,3})?)+)\\(.*)(?=\.(?:mkv|avi|mp4|wmv)$)"
Const Test As String = "\\DS718\Video\TV Shows\Death in Paradise\S14E08\Episode 8 720p HDTV.mkv"

Set RE = New RegExp
With RE
    .Global = True
    .IgnoreCase = True
    .Pattern = sPATepi
    .Multiline = True
End With

'Crashes if result = True
Debug.Print RE.Test(Test)

End Sub

RE.Test(Test)在正则测试工具中返回True(该程序多年来一直如此)。简单的正则表达式不会出现此问题(例如pattern = "\d+"会返回True且不会崩溃)。我已运行DISM但未发现错误,实在不知道该如何进一步调试。

内容的提问来源于stack exchange,提问作者Ron Rosenfeld

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 09:32:44