VBScript正则表达式匹配不在锚点中的所有URL

时间:2012-01-14 03:08:22

标签: regex asp-classic vbscript find

我把头发拉过这个,看来你不能在VBScript中为doesn't begin with做一个正则表达式。

我已经开始编写一个很难找到的代码,但我宁愿找到更简单的方法。

示例输入为:

<a href="http://www.scirra.com/forum" target="_blank" title="Some value">my link text</a><br /><br />
<a href="http://www.scirra.com/blog" target="_blank" title="Some value">http://www.scirra.com/blog</a><br /><br />
<a href="http://www.scirra.com" target="_blank" title="Some value">http://www.scirra.com</a><br /><br />
<a href="http://www.scirra.com" target="_blank" title="A title">tester</a><br /><br />
http://www.google.com<br /><br />
http://www.scirra.com/blog<br /><br />
https://www.scirra.com

正如您所看到的,最后3个URL未包含在锚标记中并且需要。我试图建立一个匹配https?://的规则,它不会以<a>标记开头,但我无法找到一种简单的方法。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,vbscript没有lookbehinds(请参阅here以获取正则表达式具有哪些特性的列表)

您可以始终匹配以下内容:

(^|[^>])(https?://[rest_of_url_regex_here])

然后,如果您正在进行查找/替换,请替换为\1<a href="\2">\2</a>以放回您捕获的额外字符。