Regex.Replace不起作用

时间:2014-08-21 18:41:15

标签: c# regex

我正在使用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;
    }

1 个答案:

答案 0 :(得分:0)

由于您的正则表达式模式受^$锚点限制,因此仅当您的t字符串完全由URL组成时才会进行替换。我假设您要替换字符串中出现的网址;在这种情况下,您只需要删除锚点:

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