我一直在尝试使用VBs Regular Expression对象执行以下操作,但找不到一种简单的方法。有人可以提供一些建议吗?
例如,我有一个字符串“12< 56> 89”,我想在“<>”中找到字符串在这种情况下应该是“56”。我目前正在做的是尝试找到表达式“< \ d +>”这将返回< 56>。然后我尝试从第一场比赛的结果中找到表达式“\ d +”,它将返回56.
我不喜欢这种方式,因为它需要调用该函数两次。我想知道是否可以将字符串放在“<>”中只使用一个正则表达式?谢谢!
谢谢, 艾伦
答案 0 :(得分:10)
使用表达式“<(\ 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)
在这里测试你的正则表达式: http://www.regular-expressions.info/vbscriptexample.html
答案 1 :(得分:3)
使用表达式&lt;(\ d +)&gt;。使用
执行正则表达式Set matches = expr.Execute(text)
If matches.Count > 0 Then
result = matches(0).Submatches(0)
End If
Submatches集合包含与表达式中的括号分组对应的字符串。