VBA 正则表达式中的后向查找?
有没有办法在 VBA 正则表达式中进行负向和正向向后查找?
如果字符串以“A”开头,我不想匹配,所以我目前正在模式的开头执行 ^A,然后删除 match(0) 的第一个字符。显然不是最好的方法!
我正在使用 regExp 对象。
Is there a way to do negative and positive lookbehind in VBA regex?
I want to not match if the string starts with "A", so I am currently doing ^A at the start of the pattern, then removing the first character of match(0). Obviously not the best method!
I am using the regExp object.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
VBA 提供前瞻(正向和负向),但不一致不提供后向查看。
我见过的将 Regex 与 VBA 结合使用的最佳示例是 本文,作者:Patrick Matthews。
[使用
执行
而不是替换
更新示例]虽然我不完全清楚您的用法,但您可以使用这样的函数:
(
and)
内的模式是第一个子匹配)。要了解完整的模式,您可以参考regex101的说明。
VBA offers lookahead (both positive and negative) but rather inconsistently not lookbehind.
The best example of using Regex with VBA that I have seen is this article by Patrick Matthews.
[Updated example using
Execute
rather thanReplace
]While I am not completely clear on your usage you could use a function like this:
(
and)
is the first submatch).To understand the complete pattern, you may refer to the explanation on regex101.
将 ^A 放入非捕获组并使用 Match 对象的 SubMatches 属性来获取匹配值怎么样?
How about putting the ^A in a non-captured group and using the SubMatches property of the Match object to get your matched value?