VBA正则表达式向前看



enter code here我试图识别可能附加到端口后的数字" "
端口的格式为ge-#/#/#(可以是ge-0/0/n其中0 <= n <=23,也可以是ge-0/1/m其中0 <= m <= 3)

的例子:

ge-0/0/10.2014

结果应为"2014&"

目前,我使用以下RegEx来标识端口:

bge-0/(0/([01]?[0-9]|2[0-3])|1/[0-3])b

我的问题是为端口创建检查,但只打印它之后的内容。我尝试简单地开始,然后扔进端口代码,结果很糟糕。如果有人可以帮助创建我正在寻找的RegEx,并解释它如何检查端口而不打印它,他们将非常感激。

感谢

编辑:
只有改变模式才能解决这个问题。这是因为模式被放入将由vba宏读取的txt文件中。vba代码不可修改

用捕获额外数字.([0-9]+)的子模式展开正则表达式:

Dim regEx As New VBScript_RegExp_55.RegExp
regEx.Pattern = "bge-0/(0/([01]?[0-9]|2[0-3])|1/[0-3]).([0-9]+)b"

使用SubMatches检索子模式;参考索引2,因为在正则表达式中前面有两对括号。

Dim source, matches, result
Set source = "ge-0/0/10.2014"
If regEx.test(source) Then
    Set matches = regEx.Execute(source)
    Set result = matches(0).SubMatches(2)
End If

最新更新