热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VBA中的正则表达式组中的正则表达式

我来自以下问题:

我来自以下问题:How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops

在此找到了一个非常有用的链接:https://www.experts-exchange.com/articles/1336/Using-Regular-Expressions-in-Visual-Basic-for-Applications-and-Visual-Basic-6.html

这就是我在VBA中需要使用的功能。但是,我要解决的正则表达式如下所示:

OR(Q12 = "YES",Q13 = "ABCD",Q2 <> 3)

它将始终仅是OR函数

我的excel工作表中有2列,如:

Table1
ColA ColB
Q1 YES
Q2 2
Q12 YES
Q13 ABCD

所以我想先建立n个群组:

Group1: Q12 = "YES"
Group2: Q13 = "ABCD"
Group3: Q2 <> 3

然后,我必须通过做一个正则表达式来解决每个这样的小组:

Group1-1: Q12
Group1-2: =
Group1-3: YES

然后我将在VBA代码中VLOOKUP(Q12,Table1,2,FALSE)
如果Group1-2为“ =”,则为=,否则为<> Group1-3

这将表示Group1 = 1
对于所有n个组类似

TLDR:

输入:

OR(Q12 = "YES",Q2 <> 3)

输出:

Group1-1: Q12
Group1-2: =
Group1-3: "YES"
Group2-1: Q13
Group2-2: =
Group2-3: "ABCD"
Group3-1: Q2
Group3-2: <>
Group3-3: 3

非常感谢您!

Edit1:嘿,而不是Hye


根本不需要使用正则表达式:)只需删除逗号并按空格分隔即可:

Sub NoRegex()
Dim str As String,splitted() As String
str = "OR(Q12 = ""YES"",Q13 = ""ABCD"",Q2 <> 3)"
str = Replace(Replace(Replace(Replace(str,",""),"OR",")","(","")
splitted = Split(str," ")
End Sub

您将把所有块都放在一个数组中:)


推荐阅读
author-avatar
lkiouy_107
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有