我如何忽略特定两个符号中的替换文本
How can i ignore replace text within specific two symbol
我使用以下代码片段来替换文本
private void textBox1_TextChanged(object sender, EventArgs e)
{
string A = textBox1.Text.Trim();
string B = textBox1.Text.Trim();
A = A.Replace("AB", "CD");
A = A.Replace("GF", "HI");
A = A.Replace("AC", "QW");
A = A.Replace("VB", "GG");
textBox2.Text = (A);
}
但我想在 || 中忽略此替换技术这些 symbol.As 示例我的代码执行此操作
当我在 txtbox1 中键入 AB GF 时,txtbox2 将替换为以下 CD HI。
现在当我输入 |AB GF| 时我需要在 txtbox1 ,txtbox2 替换为 AB GF
我用这个代码来做这个
textBox2.Text = ((B.Contains("|")) ? B.Replace("|", "") : A);
但这行不通,之后 |这个符号都包含 txtbox1 中的东西没有被替换,我该怎么做
根据您的评论,您需要在进行替换之前在空格处拆分字符串。之后,您将把它们重新组合在一起。使用 Linq 这很容易。
public Main()
{
var strings = new string[]{ "AB GF", "|AB| GF" };
foreach (var s in strings)
Console.WriteLine(String.Join(" ", s.Split(' ').Select(x => ReplaceText(x))));
}
string ReplaceText(string text)
{
if (text.Contains("|"))
return text.Replace("|", String.Empty);
else
{
text = text.Replace("AB", "CD");
text = text.Replace("GF", "HI");
text = text.Replace("AC", "QW");
return text.Replace("VB", "GG");
}
}
打印:
光盘嗨
AB 嗨
正在查看您的代码。如果您需要避免使用 ReplaceText 方法。像这样的东西会起作用。
string A = textBox1.Text.Trim();
var subStrings = A.Split(' ');
for (int i = 0; i < subStrings.Count(); i++)
{
if (subStrings[i].Contains("|"))
subStrings[i] = subStrings[i].Replace("|", String.Empty);
else
{
subStrings[i] = subStrings[i].Replace("AB", "CD");
subStrings[i] = subStrings[i].Replace("GF", "HI");
subStrings[i] = subStrings[i].Replace("AC", "QW");
subStrings[i] = subStrings[i].Replace("VB", "GG");
}
}
textBox2.Text = String.Join(" ", subStrings);
我使用以下代码片段来替换文本
private void textBox1_TextChanged(object sender, EventArgs e)
{
string A = textBox1.Text.Trim();
string B = textBox1.Text.Trim();
A = A.Replace("AB", "CD");
A = A.Replace("GF", "HI");
A = A.Replace("AC", "QW");
A = A.Replace("VB", "GG");
textBox2.Text = (A);
}
但我想在 || 中忽略此替换技术这些 symbol.As 示例我的代码执行此操作
当我在 txtbox1 中键入 AB GF 时,txtbox2 将替换为以下 CD HI。 现在当我输入 |AB GF| 时我需要在 txtbox1 ,txtbox2 替换为 AB GF
我用这个代码来做这个
textBox2.Text = ((B.Contains("|")) ? B.Replace("|", "") : A);
但这行不通,之后 |这个符号都包含 txtbox1 中的东西没有被替换,我该怎么做
根据您的评论,您需要在进行替换之前在空格处拆分字符串。之后,您将把它们重新组合在一起。使用 Linq 这很容易。
public Main()
{
var strings = new string[]{ "AB GF", "|AB| GF" };
foreach (var s in strings)
Console.WriteLine(String.Join(" ", s.Split(' ').Select(x => ReplaceText(x))));
}
string ReplaceText(string text)
{
if (text.Contains("|"))
return text.Replace("|", String.Empty);
else
{
text = text.Replace("AB", "CD");
text = text.Replace("GF", "HI");
text = text.Replace("AC", "QW");
return text.Replace("VB", "GG");
}
}
打印:
光盘嗨
AB 嗨
正在查看您的代码。如果您需要避免使用 ReplaceText 方法。像这样的东西会起作用。
string A = textBox1.Text.Trim();
var subStrings = A.Split(' ');
for (int i = 0; i < subStrings.Count(); i++)
{
if (subStrings[i].Contains("|"))
subStrings[i] = subStrings[i].Replace("|", String.Empty);
else
{
subStrings[i] = subStrings[i].Replace("AB", "CD");
subStrings[i] = subStrings[i].Replace("GF", "HI");
subStrings[i] = subStrings[i].Replace("AC", "QW");
subStrings[i] = subStrings[i].Replace("VB", "GG");
}
}
textBox2.Text = String.Join(" ", subStrings);