我在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;
}
由于您的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-.?,'/\+&%$#_]*)?";