如何在没有正则表达式的情况下替换两个值之间的文本?
How can I replace text between two values without regex?
我想替换两个值之间的文本,而不是使用正则表达式。我希望用户通过使用两个文本框来定义 he/she 将在哪些值之间查找文本。到目前为止,这就是我写的。它正在工作接受我几个小时以来一直试图摆脱的一个小错误。
string rw = richTextBox2.Text;
string s = richTextBox1.Text;
int start = s.IndexOf(textBox1.Text);
int end = s.IndexOf(textBox2.Text);
string textBefore = s.Substring(0, start);
string textAfter = s.Substring(end + 1);
string newText = rw;
richTextBox1.Text = textBefore + newText + textAfter;
例如,我要替换的值是 "hello (q) replacethis (qt) hello",我想将 (q) 和 (qt) 之间的所有内容替换为“(q) replaced (qt)”,这样结果会变成"hello (q) replaced (qt) hello"。但是结果不是我刚才解释的结果,而是 "hello (q) replaced (qt)qt) hello"。为什么会这样?
替换
string textAfter = s.Substring(end + 1);
和
string textAfter = s.Substring(end + richTextBox2.Text.Length);
您想开始计算最终分隔符字符串之后的最后一段文本,而不是在最终分隔符字符串的开头(或开头之后的一段)
你能做到这么简单吗?
var original = "hello (q) replacethis (qt) hello";
var result = original.Replace("(q) replacethis (qt)", "(q) replaced (qt)");
Console.WriteLine(result);
这输出:
hello (q) replaced (qt) hello
我想替换两个值之间的文本,而不是使用正则表达式。我希望用户通过使用两个文本框来定义 he/she 将在哪些值之间查找文本。到目前为止,这就是我写的。它正在工作接受我几个小时以来一直试图摆脱的一个小错误。
string rw = richTextBox2.Text;
string s = richTextBox1.Text;
int start = s.IndexOf(textBox1.Text);
int end = s.IndexOf(textBox2.Text);
string textBefore = s.Substring(0, start);
string textAfter = s.Substring(end + 1);
string newText = rw;
richTextBox1.Text = textBefore + newText + textAfter;
例如,我要替换的值是 "hello (q) replacethis (qt) hello",我想将 (q) 和 (qt) 之间的所有内容替换为“(q) replaced (qt)”,这样结果会变成"hello (q) replaced (qt) hello"。但是结果不是我刚才解释的结果,而是 "hello (q) replaced (qt)qt) hello"。为什么会这样?
替换
string textAfter = s.Substring(end + 1);
和
string textAfter = s.Substring(end + richTextBox2.Text.Length);
您想开始计算最终分隔符字符串之后的最后一段文本,而不是在最终分隔符字符串的开头(或开头之后的一段)
你能做到这么简单吗?
var original = "hello (q) replacethis (qt) hello";
var result = original.Replace("(q) replacethis (qt)", "(q) replaced (qt)");
Console.WriteLine(result);
这输出:
hello (q) replaced (qt) hello