2012-01-14 6 views
0

私はこの1つの上に私の髪を引っ張っています、あなたはVBScriptでdoesn't begin withの正規表現を行うことはできないようです。アンカーにないすべてのURLに一致する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がアンカータグで包み、する必要がされていません。私はそれが<a>タグで始まらないhttps?://と一致するルールを構築しようとしていましたが、簡単な方法を見つけることができません。

誰でも手助けできますか?あなたがいるならば、

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

そして:

答えて

1

残念ながら、VBScriptのはlookbehindsが

あなたはいつものようなものを一致させることができ(正規表現の風味が特徴何を持っているもののリストについては、hereを参照)を持っていません。検索/置換を実行して、\1<a href="\2">\2</a>に置き換えて、キャプチャした余分な文字を戻します。

+0

これがうまくいくかどうかわかりませんが、誰かが「http://www.google.com」と一致していないとわかりません。 : –

+0

よくHTML/XMLを解析するための推奨される方法は、正規表現がその種の問題で失敗するために特別に作られた何らかのパーサーを使用することです。 –

関連する問題