如何在VBA

时间:2016-04-03 09:59:49

标签: regex vba excel-vba string-matching multilinestring

我正在尝试使用VBA中的正则表达式从XML中提取一些数据,方法是匹配元素的开始和结束标记,但我没有得到任何东西。

我可以在Notepad ++中使用<foo>.+?<\/foo>,但它不适用于使用Microsoft Regular Expression 5.5的VBA

<foo>
variable data here 
-
-
</foo>

1 个答案:

答案 0 :(得分:0)

这是列出所有<td>内容的示例:

Sub MatchXMLtags()
  Dim xml As String
  xml = "<td>a</td><td>b" & vbCrLf & "</td><td>c</td>" & vbCrLf & "<td>d</td>"

  Dim match As Object
  With CreateObject("VBScript.RegExp")
    .pattern = "<td>\s*([\S\s]+?)\s*</td>"
    .Global = True
    .IgnoreCase = True
    .MultiLine = False

    ' display the content of each td tag
    For Each match In .Execute(xml)
      Debug.Print match.SubMatches(0)
    Next
  End With
End Sub