0

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 并解释它如何在不打印的情况下检查端口,他们将不胜感激。

谢谢

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

4

1 回答 1

1

使用额外数字的捕获子模式扩展您的正则表达式\.([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
于 2014-06-17T23:20:13.497 回答