試圖獲得一個匹配URL的正則表達式,例如「http://www.test.com」,然後打算把它周圍的錨標記 - 這部分與工作已經關注:C#正則表達式的URL
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>
這是雲裏霧裏 - 我可以理解你想要的一般但不精確,你能列出5個正確的輸入和5個正確的輸出,並給出2個正確的輸入,這會產生2個不正確的輸出? –
我添加了輸入和輸出我目前正在測試 – John