C# 是否从richTextBox中删除特定行?

C# 是否从richTextBox中删除特定行?,c#,regex,richtextbox,C#,Regex,Richtextbox,我有一个richTextBox1,有50多行(有些行是空的)。。。我喜欢删除仅从ALTER TABLE开始的行,并包含移动存储,直到下一个空行。。。例如,下面的第一行单词(richtextbox中实际上有两行,空行之后出现)以ALTER TABLE开始,并具有移动存储,因此我需要删除所有内容,直到下一个空行 ALTER TABLE "CAMPUS_SITE" MOVE STORAGE ( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 214

我有一个richTextBox1,有50多行(有些行是空的)。。。我喜欢删除仅从ALTER TABLE开始的行,并包含移动存储,直到下一个空行。。。例如,下面的第一行单词(richtextbox中实际上有两行,空行之后出现)以ALTER TABLE开始,并具有移动存储,因此我需要删除所有内容,直到下一个空行

ALTER TABLE "CAMPUS_SITE" MOVE STORAGE ( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT);
我的代码:

var text=”“//保存正在循环的当前行的文本。
var startindex=0//选择开始的位置。
var-endindex=0//选择的长度。
for(int i=0;i
要删除所有以alter table开头并包含移动存储的行,您可以这样做

List<string> finalLines = richTextBox1.Lines.ToList();
finalLines.RemoveAll(x => x.StartsWith("ALTER TABLE") && x.Contains("MOVE STORAGE"));
richTextBox1.Lines = finalLines.ToArray();
List finalLines=richTextBox1.Lines.ToList();
RemoveAll(x=>x.StartsWith(“ALTER TABLE”)&&x.Contains(“移动存储”);
richTextBox1.Lines=finalLines.ToArray();

要删除所有以alter table开头并包含移动存储的行,您可以这样做

List<string> finalLines = richTextBox1.Lines.ToList();
finalLines.RemoveAll(x => x.StartsWith("ALTER TABLE") && x.Contains("MOVE STORAGE"));
richTextBox1.Lines = finalLines.ToArray();
List finalLines=richTextBox1.Lines.ToList();
RemoveAll(x=>x.StartsWith(“ALTER TABLE”)&&x.Contains(“移动存储”);
richTextBox1.Lines=finalLines.ToArray();
String[]txt=richTextBox1.行;
布尔标志=假;
for(int i=0;i
此代码不会删除您的行,但会将String.empty(等于“”)设置为此行

如果需要将行中的所有文本删除为空行,可以使用

String[] txt = richTextBox1.Lines;
            richTextBox1.Text = string.Empty;
            bool flag = false;
            for (int i = 0; i < txt.Length; i++)
            {
                if (txt[i].StartsWith("ALTER TABLE") && txt[i].Contains("MOVE STORAGE"))
                    flag = true;
                if (string.IsNullOrEmpty(txt[i]))
                    flag = false;

                if (!flag)
                    richTextBox1.Text += txt[i] + "\r\n";
            }
String[]txt=richTextBox1.Lines;
richTextBox1.Text=string.Empty;
布尔标志=假;
for(int i=0;i
String[]txt=richTextBox1.行;
布尔标志=假;
for(int i=0;i
此代码不会删除您的行,但会将String.empty(等于“”)设置为此行

如果需要将行中的所有文本删除为空行,可以使用

String[] txt = richTextBox1.Lines;
            richTextBox1.Text = string.Empty;
            bool flag = false;
            for (int i = 0; i < txt.Length; i++)
            {
                if (txt[i].StartsWith("ALTER TABLE") && txt[i].Contains("MOVE STORAGE"))
                    flag = true;
                if (string.IsNullOrEmpty(txt[i]))
                    flag = false;

                if (!flag)
                    richTextBox1.Text += txt[i] + "\r\n";
            }
String[]txt=richTextBox1.Lines;
richTextBox1.Text=string.Empty;
布尔标志=假;
for(int i=0;i
什么不起作用?什么是错误/异常?您可能应该将示例中的空行替换为。什么不起作用?错误/异常是什么?可能您应该将示例中的空行替换为。这是可行的,但现在我看到太多的空行,我的条件起作用,因此如何在下一句之前生成一个空行?您可以删除空行,就像上面的代码一样。如果它有效,你可以接受它。这是有效的,但现在我看到太多的空行,我的条件起作用,那么我怎么能在下一句话之前留下一个空行呢?你可以删除空行,就像上面的代码一样。如果它起作用,你可以接受它。