VBScript регулярное выражение, чтобы соответствовать всем URL-адресам, не в привязке - PullRequest
0 голосов
/ 14 января 2012

Я тяну волосы за этот, кажется, вы не можете сделать регулярное выражение для doesn't begin with в VBScript.

Я начал писать сложный грязный кусок кода, который находит их, но я бы лучше нашел более простой способ.

Пример ввода:

<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 Ответ

1 голос
/ 14 января 2012

К сожалению, у vbscript нет внешнего вида (см. здесь , чтобы узнать, какие функции regex имеют какие функции)

Вы всегда можете подобрать что-то вроде:

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

А затем, если вы выполняете поиск / замену, замените на \1<a href="\2">\2</a>, чтобы вернуть лишний захваченный вами дополнительный символ.

...