簡體   English   中英

使用正則表達式替換字符串 c# 中的 URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM