String.Remove 基于索引位置并与 for 循环混合的子字符串
String.Remove substring based on index position and mixing with a for loop
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
string s = "String test <123> blablabla1 </123> <123> blablabla2 </123> <123> blablabla3 </123>";
for (int i = 0; i < s.Length; i++)
{
int s1 = s.IndexOf("<123>");
int s2 = s.IndexOf("</123>");
int s3 = s2 - s1;
s = s.Remove(s1, s3);
}
textBox.Text = s;
}
private void textBox_TextChanged(object sender, TextChangedEventArgs e)
{
}
}
我有以下代码。
字符串 s 包含几个我想要删除的 "blablabla#" 值。
我设法使用简单的 string.remove 数学删除了第一个。
我如何让它在每次出现起始字符串“<123>”时循环?
private void button_Click(object sender, RoutedEventArgs e)
{
string s = "String test <123> blablabla1 </123> <123> blablabla2 </123> <123> blablabla3 </123>";
int s1;
while ((s1 = s.IndexOf("<123>")) >= 0)
{
int s2 = s.IndexOf("</123>");
int s3 = s2 - s1;
s = s.Remove(s1, s3);
}
textBox.Text = s;
}
您可以一次性全部替换为Regex.Replace
:
s = Regex.Replace(s, @"<123>.*?<\/123>", "");
或者也替换多余的空格:
s = Regex.Replace(s, @"\s*<123>.*?<\/123>\s*", "");
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
string s = "String test <123> blablabla1 </123> <123> blablabla2 </123> <123> blablabla3 </123>";
for (int i = 0; i < s.Length; i++)
{
int s1 = s.IndexOf("<123>");
int s2 = s.IndexOf("</123>");
int s3 = s2 - s1;
s = s.Remove(s1, s3);
}
textBox.Text = s;
}
private void textBox_TextChanged(object sender, TextChangedEventArgs e)
{
}
}
我有以下代码。 字符串 s 包含几个我想要删除的 "blablabla#" 值。 我设法使用简单的 string.remove 数学删除了第一个。 我如何让它在每次出现起始字符串“<123>”时循环?
private void button_Click(object sender, RoutedEventArgs e)
{
string s = "String test <123> blablabla1 </123> <123> blablabla2 </123> <123> blablabla3 </123>";
int s1;
while ((s1 = s.IndexOf("<123>")) >= 0)
{
int s2 = s.IndexOf("</123>");
int s3 = s2 - s1;
s = s.Remove(s1, s3);
}
textBox.Text = s;
}
您可以一次性全部替换为Regex.Replace
:
s = Regex.Replace(s, @"<123>.*?<\/123>", "");
或者也替换多余的空格:
s = Regex.Replace(s, @"\s*<123>.*?<\/123>\s*", "");