目前我在VBA中的正则表达式捕获花括号中的所有内容(包括花括号):
Pattern = "\{\w*\}"
在正则表达式级别省略大括号吗?
所以{Computer1} {Computer2}
成为Computer1 计算机2
以下完整代码:
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
.Global = True
.IgnoreCase = True
.MultiLine = True
.Pattern = "\{\w*\}"
End With
答案 0 :(得分:2)
在支持lookbehinds的正则表达式中,你可以这样做:
(?<={)\w*(?=})
这只匹配大括号的内容。请注意,为避免返回空字符串,您可以将*
更改为+
但VBscript不支持lookbehind。
相反,您可以使用括号将内容捕获到第1组:
{(\w+)}
以下是RegexBuddy生成的代码(由于我不使用VBScript而无法发表评论):
Dim myRegexp, contentOfBraces, myMatches, myMatch As Match
Dim myRegexp As RegExp
Set myRegexp = New RegExp
myRegexp.Pattern = "{(\w+)}"
Set myMatches = myRegexp.Execute(SubjectString)
If myMatches.Count >= 1 Then
Set myMatch = myMatches(0)
If myMatch.SubMatches.Count >= 1 Then
contentOfBraces = myMatch.SubMatches(1-1)
Else
contentOfBraces = ""
End If
Else
contentOfBraces = ""
End If