[英]Using Regex to replace URLs in a string c#
大家好,嘗試使用正則表達式替換文本框內的一些 URL,但認為我設置不正確。
所以我的信息看起來像這樣:
嘿,看看這個網站 http:\www.anywhere.com
我想要做的是將鏈接替換為 URL 隔離,如下所示,然后將替換的 URL 添加到列表中:
嘿,看看這個網站 URL 已隔離
這是我下面的代碼:
public void QuarantineURLS()
{
var listURLS = new List<string>();
var urlReplace = new Regex(@"\b(https?://|www\.)\S+(?=\s|[^\P{P}?]|\z)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
txtContentClean.Text = urlReplace.Replace(txtContent.Text, "<URL Quarrantined>");
}
但是我得到的 output 看起來像這樣:
嘿,看看這個網站 http:\URL Quarantined
誰能告訴我如何正確實施
使用 Replace 方法,您可以使用回調。
請注意,問題中的 url 有\\
而不是//
例如,使用問題中的模式:
var listURLS = new List<string>();
var txt = "Hey check out this site http://www.anywhere.com";
var urlReplace = new Regex(@"\b(https?://|www\.)\S+(?=\s|[^\P{P}?]|\z)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
var txtClean = urlReplace.Replace(txt, m => {
listURLS.Add(m.Value);
return "<URL Quarrantined>";
});
Console.WriteLine(txtClean);
listURLS.ForEach(i => Console.Write("{0}\t", i));
Output
Hey check out this site <URL Quarrantined>
http://www.anywhere.com
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.