[英]VBA regex look ahead
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代码无法修改。
用捕获子模式扩展正则表达式以获取附加数字\\.([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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.