我正在使用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;
}
答案 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\-\.\?\,\'\/\\\+&%\$#_]*)?";