我正在尝试在 VBScript 中使用 Regex 将具有“候选人”类的 HTML 标记替换为文本“PLACEHOLDER”。但是,它并不总是有效。
<[^\>]*class=""[^\>]*candidate[^\>]*""[^\>]*>([\s\S]*?)</[^\>]*>
Flags: IgnoreCase = True, Multiline = True, Global = True
问题是我不确定哪种类型的 HTML 标记将包含此类(例如,它可能是 < div > 标记或 < p > 标记)。其次,正则表达式不适用于内部 HTML 标记。
主题 HTML:
<div class="outer">
<div class="normal">
<p><strong><em>Test</em></strong></p>
</div>
<div class="candidate">
<p>Test 1:</p>
<ul>
<li>Test 2</li>
<li>Test 3 </li>
<li>Test 4 </li>
</ul>
<p>Test 5</p>
</div>
<p>Test 6</p>
<div class="normal">
<p><strong>Test 7</strong></p>
</div>
</div>
预期的:
<div class="outer">
<div class="normal">
<p><strong><em>Test</em></strong></p>
</div>
<div class="candidate">
PLACEHOLDER
</div>
<p>Test 6</p>
<div class="normal">
<p><strong>Test 7</strong></p>
</div>
</div>
实际的:
<div class="outer">
<div class="normal">
<p><strong><em>Test</em></strong></p>
</div>
<div class="candidate">
PLACEHOLDER
<li>Test 2</li>
<li>Test 3 </li>
<li>Test 4 </li>
</ul>
<p>Test 5</p>
</div>
<p>Test 6</p>
<div class="normal">
<p><strong>Test 7</strong></p>
</div>
</div>
相同的 HTML 标记也可能具有相同类型但不同类的内部标记,这些标记目前偶尔会起作用。
例如:
<div class="candidate">Test<div class="normal">Test</div></div>
任何帮助将不胜感激。