在VBS中提取JS数组字符串

时间:2013-05-03 12:52:47

标签: regex vbscript

我在VBScript中编码。

我有以下字符串

myString = "[ "http://www.google.com/", "http://www.yahoo.com" ]

如何使用正则表达式提取网址?反正有没有读过这个JS数组?

2 个答案:

答案 0 :(得分:2)

我会删除起始和尾随括号,然后使用split方法。我认为正则表达式并不打算这样做......

答案 1 :(得分:0)

RegEx for easy cases(not embedded“):

  ' Mark the correct quotes
  Dim sTest : sTest = "[ ""http://www.google.com/"", ""http://www.yahoo.com"", """" ]"
  WScript.Echo sTest
  Dim reStringLiteral : Set reStringLiteral = New RegExp
  reStringLiteral.Global  = True
  reStringLiteral.Pattern = """([^""]*)"""
  Dim oMTS : Set oMTS = reStringLiteral.Execute(sTest)
  Dim oMT
  For Each oMT In oMTS
      WScript.Echo oMT.Value, oMT.SubMatches(0)
  Next

输出:

[ "http://www.google.com/", "http://www.yahoo.com", "" ]
"http://www.google.com/" http://www.google.com/
"http://www.yahoo.com" http://www.yahoo.com
""

Split()用于简单案例(不变“,”分隔符):

  Dim sTest : sTest = "[ ""http://www.google.com/"", ""http://www.yahoo.com"", """" ]"
  WScript.Echo sTest
  Dim reNetto : Set reNetto = New RegExp
  reNetto.Global  = True
  reNetto.Pattern = "^[^""]*""|""[^""]*$"
  sTest = reNetto.Replace(sTest, "")
  WScript.Echo sTest
  Dim sUrl
  For Each sUrl In Split(sTest, """, """)
      WScript.Echo qq(sUrl), sUrl
  Next

输出:

[ "http://www.google.com/", "http://www.yahoo.com", "" ]
http://www.google.com/", "http://www.yahoo.com", "
"http://www.google.com/" http://www.google.com/
"http://www.yahoo.com" http://www.yahoo.com
""