正则表达式 - 如何在匹配中找到匹配?

All*_*len 7 regex vbscript

我一直在尝试使用VBs Regular Expression对象执行以下操作,但找不到一种简单的方法.有人可以提供一些建议吗?

例如,我有一个字符串"12 <56> 89",我想得到"<>"里面的字符串,在这种情况下应该是"56".我目前正在做的是尝试找到将返回<56>的表达式"<\ d +>".然后我尝试从第一个匹配的结果中找到表达式"\ d +",它将返回56.

我不喜欢这种方式,因为它需要调用该函数两次.我想知道是否可以使用一个正则表达式将字符串放在"<>"中?谢谢!

谢谢,艾伦

Jef*_*amb 11

使用表达"<(\ d +)>"

然后,您可以将所有匹配作为集合进行访问.如果设置,您的正则表达式可以匹配多次RegEx.Global = True.第一个匹配在var(0)中找到,第二个匹配在var(1).子匹配组可以在var(0).SubMatches(0)等处找到.如果你只做一次,你可以将它排成一行:

Dim RegEx : Set RegEx = New RegExp
RegEx.Pattern = "<(\d+)>"
Dim strTemp : strTemp = "12<56>89"
WScript.Echo RegEx.Execute(strTemp)(0).SubMatches(0)
Run Code Online (Sandbox Code Playgroud)

在这里测试你的正则表达式:http: //www.regular-expressions.info/vbscriptexample.html