如何通过访问正则表达式字符串来转义 VBA 中的字符
how to escape character in VBA with access for an regex string
我有一个正则表达式字符串:.*href="\/anime\/(\d*)\/.*class="animetitle".*<span>(.*)<\/span>.*[\s].*<span id="scoreval\d*">(\d*)<\/span>.*<\/td>[\s].*align="center">(.*)<\/td>
您可以在 regex101 中看到此正则表达式。
当我将其放入 VBA 时,出现了一些错误。
regEx.Pattern = ".*href="\/anime\/(\d*)\/.*class="animetitle".*<span>(.*)<\/span>.*[\s].*<span id="scoreval\d*">(\d*)<\/span>.*<\/td>[\s].*align="center">(.*)<\/td>"
.*href="\
/
anime
是第一个错误,但是我看不懂。也许某些 "
是问题所在。但是通常会转义该字符的 \
呢?
我相信 VBA 你必须通过加倍来转义字符串分隔符 ("
)。所以:
regEx.Pattern = ".*href=""\/anime\/(\d*)\/.*class=""animetitle"".*<span>(.*)<\/span>.*[\s].*<span id=""scoreval\d*"">(\d*)<\/span>.*<\/td>[\s].*align=""center"">(.*)<\/td>"
作为旁注,我不鼓励您使用正则表达式来解析 HTML。 This website 解释原因并提供某些语言的替代方案。如果 VBA 有一个 HTML-解析器,我鼓励您改用它 :)
我有一个正则表达式字符串:.*href="\/anime\/(\d*)\/.*class="animetitle".*<span>(.*)<\/span>.*[\s].*<span id="scoreval\d*">(\d*)<\/span>.*<\/td>[\s].*align="center">(.*)<\/td>
您可以在 regex101 中看到此正则表达式。
当我将其放入 VBA 时,出现了一些错误。
regEx.Pattern = ".*href="\/anime\/(\d*)\/.*class="animetitle".*<span>(.*)<\/span>.*[\s].*<span id="scoreval\d*">(\d*)<\/span>.*<\/td>[\s].*align="center">(.*)<\/td>"
.*href="\
/
anime
是第一个错误,但是我看不懂。也许某些 "
是问题所在。但是通常会转义该字符的 \
呢?
我相信 VBA 你必须通过加倍来转义字符串分隔符 ("
)。所以:
regEx.Pattern = ".*href=""\/anime\/(\d*)\/.*class=""animetitle"".*<span>(.*)<\/span>.*[\s].*<span id=""scoreval\d*"">(\d*)<\/span>.*<\/td>[\s].*align=""center"">(.*)<\/td>"
作为旁注,我不鼓励您使用正则表达式来解析 HTML。 This website 解释原因并提供某些语言的替代方案。如果 VBA 有一个 HTML-解析器,我鼓励您改用它 :)