首页 > 解决方案 > Excel VBA 正则表达式模式给出错误'5018'

问题描述

我试图通过使用下面的正则表达式从产品详细信息中提取尺寸。

With rgx
    .Global = True
    .MultiLine = False
    .Pattern = "([0-9.,*?/]+{1,5}\s*(g|G|ML|ml|mL|Ml|oz|OZ|Oz|ea|\s+)){1,3}"
    
    Set temp = .Execute(Rng)

但是,在执行正则表达式时,我在Set temp = .Execute(Rng)行中面临 5018 错误, 为什么我在正则表达式中遇到此错误有什么问题?

标签: excelregexvba

解决方案


本文所述,5018 代表“正则表达式中的意外量词”

看看[0-9.,*?/]+{1,5}哪里有+{1,5},连续两个量词。

在 VBA 正则表达式中,这是一个错误。

如果您匹配属于该[0-9.,*?/]集合的 1 到 5 个字符,请使用[0-9.,*?/]{1,5}.

如果匹配一个或多个,请使用[0-9.,*?/]+.

不要链接量词


推荐阅读