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

VBA正则匹配:如何实现第三种(其他值)匹配分支?

实现第三种匹配情况的解决方案

要处理第三种“匹配所有其他值”的情况,核心逻辑是在前两种正则匹配都不成立时执行对应处理,可以通过嵌套的If-Else结构实现,以下是修改后的完整代码:

Set objRegex = CreateObject("VBScript.RegExp")
    
With objRegex
    .IgnoreCase = True
    .Pattern = "^\d+$"
    
    If .test(SearchUser) Then
        adoCommand.CommandText = "<LDAP://" & strDomain & ">;(&amp;(objectClass=User)(employeeid=" & SearchUser & ")(memberOf=" & SearchGroup & "));employeeid;subtree"
    Else
        .Pattern = "([\w\.-]+)@([\w\.-]+)\.([A-Za-z]{2,6})"
        If .test(SearchUser) Then
            adoCommand.CommandText = "<LDAP://" & strDomain & ">;(&amp;(objectClass=User)(userprincipalname=" & SearchUser & ")(memberOf=" & SearchGroup & "));employeeid;subtree"
        Else
            ' 第三种情况:既非纯数字也非邮箱格式,执行自定义逻辑
            adoCommand.CommandText = "<LDAP://" & strDomain & ">;(&amp;(objectClass=User)(samaccountname=" & SearchUser & ")(memberOf=" & SearchGroup & "));employeeid;subtree"
            ' 可根据实际需求替换LDAP查询字段
        End If
    End If
End With

关键说明

  • 采用If-Else嵌套结构,确保只有当前两种匹配都失败时,才触发第三种情况的逻辑。
  • 第三种情况通常用于匹配普通用户名(示例中用samaccountname字段),可根据业务需求调整LDAP查询语句。
  • 复用同一个正则对象,避免重复创建实例,提升代码执行效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:04:55