VBS- String将多行分成多个数组

时间:2009-03-11 15:54:39

标签: regex vbscript

我正在尝试创建一个函数,该函数将采用可能超过多行的字符串,例如:

"declare notThese
declare orThis

hello = $notThis@butthis$
butNot= $ButNotThis$

andDefNot = getDate()"

搜索它,从

等所有部分中提取{string1}
${whatever}@{string1}$

然后将它们推入阵列。

我如何存档?是通过正则表达式还是比它更简单?

如果字符串在上面的多行上呈现也会有所不同吗?

2 个答案:

答案 0 :(得分:2)

你可以通过正则表达式来完成。在这种情况下,多线与否不起作用。

Function ExtractStrings(input)
  Dim re, matches, match, i, output

  Set re = new RegExp
  re.Pattern = "\$[^@]+@([^$]+)\$"
  re.Global = True

  Set matches = re.Execute(input)

  ReDim output(matches.Count - 1)

  i = 0
  For Each match in matches  
    output(i) = match.SubMatches(0)
    i = i + 1
  Next

  ExtractStrings = output
End Function

答案 1 :(得分:0)

您可以通过“拆分”功能来做到这一点:

  Dim sLinesOfText As String
  sLinesOfText = "Insert multiple lines of text here"
  Dim aLines() As String
  Dim iLine As Integer
  iLine = 0
  
  aLines = Split(sLinesOfText, vbCrLf, , vbTextCompare)
  Do While iLine < UBound(aLines)
    Debug.Print aLines(iLine)
    iLine = iLine + 1
  Loop