URLに一致する正規表現を取得しようとしています(例:'http://www.test.com')そしてその周りにアンカータグを配置します-その部分はすでに次のように機能しています:
regex = @"(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:;,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:;,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:;,.]*\)|[A-Z0-9+&@#\/%=~_|$])"
msg = r.Replace( msg, "<a target=\"_blank\" href=\"$0\">$0</a>" );
ただし、入力テキストに画像タグがある場合、画像タグのsrc属性内にアンカータグが誤って配置されます。
<img src="<a>...</a>" />;
これまでのところ、私はこれを回避しようとしています:(機能していません)
regex = @"(?!(src=""))(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:;,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:;,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:;,.]*\)|[A-Z0-9+&@#\/%=~_|$])"
編集:
(テスト入力の例):
<p>
www.test1.com<br />
<br />
http://www.test2.com<br />
<br />
https://www.test3.com<br />
<br />
"https://www.test4.com<br />
<br />
'https://www.test4.com<br />
<br />
="https://www.test4.com</p>
<p>
</p>
<p>
<img alt="" src="..." style="width: 500px; height: 375px;" /></p>
(出力例):
<p>
<a target="_blank" href="www.test1.com">www.test1.com</a><br />
<br />
<a target="_blank" href="http://www.test2.com">http://www.test2.com</a><br />
<br />
<a target="_blank" href="https://www.test3.com">https://www.test3.com</a><br />
<br />
"<a target="_blank" href="https://www.test4.com">https://www.test4.com</a><br />
<br />
'<a target="_blank" href="https://www.test4.com">https://www.test4.com</a><br />
<br />
="<a target="_blank" href="https://www.test4.com">https://www.test4.com</a></p>
<p>
</p>
<p>
<img alt="" src="<a target="_blank" href="...">...</a>" style="width: 500px; height: 375px;" /></p>
(望ましい出力):
<p>
<a target="_blank" href="www.test1.com">www.test1.com</a><br />
<br />
<a target="_blank" href="http://www.test2.com">http://www.test2.com</a><br />
<br />
<a target="_blank" href="https://www.test3.com">https://www.test3.com</a><br />
<br />
"<a target="_blank" href="https://www.test4.com">https://www.test4.com</a><br />
<br />
'<a target="_blank" href="https://www.test4.com">https://www.test4.com</a><br />
<br />
="<a target="_blank" href="https://www.test4.com">https://www.test4.com</a></p>
<p>
</p>
<p>
<img alt="" src="..." style="width: 500px; height: 375px;" /></p>