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
我很难想出一个用 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