如何使用正则表达式模式在括号中提取子字符串

Daa*_*aan 11 regex vba substring

这可能是一个简单的问题,但不幸的是我无法得到我想要的结果......

说,我有以下几行:

"Wouldn't It Be Nice" (B. Wilson/Asher/Love)
Run Code Online (Sandbox Code Playgroud)

我必须寻找这种模式:

" (<any string>)
Run Code Online (Sandbox Code Playgroud)

为了检索:

B. Wilson/Asher/Love
Run Code Online (Sandbox Code Playgroud)

我尝试了类似的东西,"" (([^))]*))但似乎没有用.另外,我想使用Match.Submatches(0)这样可能会使事情复杂化,因为它依赖括号......

ala*_*lan 20

编辑:检查文档后,问题是括号前有不间断的空格,而不是常规空格.所以这个正则表达式应该工作:""[ \xA0]*\(([^)]+)\)

""       'quote (twice to escape)
[ \xA0]* 'zero or more non-breaking (\xA0) or a regular spaces
\(       'left parenthesis
(        'open capturing group
[^)]+    'anything not a right parenthesis
)        'close capturing group
\)       'right parenthesis
Run Code Online (Sandbox Code Playgroud)

在一个功能:

Public Function GetStringInParens(search_str As String)
Dim regEx As New VBScript_RegExp_55.RegExp
Dim matches
    GetStringInParens = ""
    regEx.Pattern = """[ \xA0]*\(([^)]+)\)"
    regEx.Global = True
    If regEx.test(search_str) Then
        Set matches = regEx.Execute(search_str)
        GetStringInParens = matches(0).SubMatches(0)
    End If
End Function
Run Code Online (Sandbox Code Playgroud)