VBScript RegEx - 单词之间的匹配

VBScript RegEx - match between words

我很难想出一个用 VBScript 表达的有效正则表达式。我正在尝试匹配 2 个关键字之间的所有文本:

(?<=key)(.*)(?=Id)

这会在 VBScript 中引发 RegEx 错误。编号

我要匹配的 Blob:

\"key\":[\"food\",\"real\",\"versus\",\"giant\",\"giant gummy\",\"diy candy\",\"candy\",\"gummy worm\",\"pizza\",\"fries\",\"spooky diy science\",\"spooky\",\"trapped\"],\"Id\"

理想情况下,我会得到一个逗号分隔的列表,如下所示:

food,real,versus,giant,giant gummy,diy candy,candy,gummy worm,pizza,fries,spooky diy science,spooky,trapped

但是,我会接受在 VBScript 中工作的 2 个关键字之间的所有文本。

提前致谢!

VBScript 的正则表达式引擎不支持 lookbehind 断言,因此您需要改为执行类似的操作:

s = "\""key\"":[\""food\"",\""real\"",\""trapped\""],\""Id\"""

'remove backslashes and double quotes from string
s1 = Replace(s, "\", "")
s1 = Replace(s1, Chr(34), "")

Set re = New RegExp
re.Pattern = "key:\[(.*?)\],Id"

For Each m In re.Execute(s1)
    list = m.Submatches(0)
Next

WScript.Echo list