クラス 'candidate' を持つ HTML タグをテキスト 'PLACEHOLDER' に置き換えるために、VBScript で Regex を使用しようとしています。ただし、常に機能しているわけではありません。
<[^\>]*class=""[^\>]*candidate[^\>]*""[^\>]*>([\s\S]*?)</[^\>]*>
Flags: IgnoreCase = True, Multiline = True, Global = True
問題は、このクラスが含まれる HTML タグのタイプがわからないことです (たとえば、< div > タグまたは < p > タグである可能性があります)。第 2 に、正規表現は内部の 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>
どんな助けでも大歓迎です。