excel - 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 错误, 为什么我在正则表达式中遇到此错误有什么问题?
解决方案
如本文所述,5018 代表“正则表达式中的意外量词”。
看看[0-9.,*?/]+{1,5}
哪里有+{1,5}
,连续两个量词。
在 VBA 正则表达式中,这是一个错误。
如果您匹配属于该[0-9.,*?/]
集合的 1 到 5 个字符,请使用[0-9.,*?/]{1,5}
.
如果匹配一个或多个,请使用[0-9.,*?/]+
.
不要链接量词。
推荐阅读
- python - Python写出新的csv文件,文本列中的换行符(在新行上创建)
- git - Git .DS_Store 文件删除失败
- c++ - 使用初始化列表构造函数构造具有不可复制值类型的 std::map
- python - 计算列表中 4 个连续数字的最大乘积
- python-3.x - 由于使用 Docker 的 PostgresDB 连接失败,无法启动 Apache Superset
- python - 在 Mac 上使用 Python 3.8 中的键盘模块
- python - 替换循环 Numpy 的点积
- prolog - Beckert & Posegga 算法的 Prolog 实现
- javascript - 如何创建可滚动的水平导航菜单但在用户窗口向下滚动时显示
- python - 如何使用 Spacy EntityRuler NLP 组合实体术语?