正则表达式.Replace不工作

本文关键字:工作 Replace 正则表达式 | 更新日期: 2023-09-27 18:19:10

我在c#中做一个URL替换器,但Regex.Replace()方法不起作用。在我点击button1之后,文本仍然是相同的。下面是代码的样子。

   private void button1_Click(object sender, EventArgs e) {
        string t = richTextBox1.Text;
        string URL = textBox1.Text;
        string pattern = @"^(ht|f)tp(s?)':'/'/[0-9a-zA-Z]([-.'w]*[0-9a-zA-Z])*(:(0-9)*)*('/?)([a-zA-Z0-9'-'.'?','''/'''+&%'$#_]*)?$";
        string text = Regex.Replace(t, pattern, URL,RegexOptions.IgnoreCase);
        richTextBox1.Text = text;
    }

正则表达式.Replace不工作

由于您的regex模式由^$锚定,因此只有当您的t字符串完全由URL组成时才会发生替换。我假设您想要替换字符串中出现的url;在这种情况下,您只需要删除锚:

string pattern = @"(ht|f)tp(s?)':'/'/[0-9a-zA-Z]([-.'w]*[0-9a-zA-Z])*(:(0-9)*)*('/?)([a-zA-Z0-9'-'.'?','''/'''+&%'$#_]*)?";