0

我正在尝试在某些数据中捕获定制的 html 样式标签的内容。

然后我想用占位符替换内容和周围的标签。

我正在使用 objMatch.Value 和 objMatch.SubMatches(0) 分别访问“内容+标签”和“仅内容”。但是,标记的尖括号似乎导致这两个都只返回内容。

这打破了:

"<MyTag\b[^>]*>(.*?)</MyTag>" 

objMatch.Value 和 objMatch.SubMatches(0) 都只返回内容。

这有效:

...但是如果我将所有尖括号更改为美元符号,如下所示:

"$MyTag\b[^$]*$(.*?)$/MyTag$"  

objMatch.Value 返回“内容 + 标记”,而 objMatch.SubMatches(0) 返回“仅内容”。正如预期和期望的那样。

任何人都可以解释这是为什么,和/或我如何改变我的正则表达式模式来解决它?

完整代码

    Dim oRegEx
    Set oRegEx = New RegExp
    oRegEx.IgnoreCase = True
    oRegEx.Global = True
    oRegEx.Pattern = "<MyTag\b[^>]*>(.*?)</MyTag>"   
    dim matches()
    dim replacements()
    dim i: i = 0
    dim objMatch

    For Each objMatch in oRegEx.Execute(stringToTest)
       redim preserve matches(i)
       redim preserve replacements(i)
       replacements(i) = objMatch.Value
       matches(i) = objMatch.SubMatches(0)
       i = (i + 1)
    Next
4

0 回答 0