删除包含两个下划线之间的数字的行

时间:2013-10-08 21:01:35

标签: c# regex

我想删除包含两个下划线之间的数字的richtextbox的行。

在richtextbox上,我有以下值(示例):

Z_OBJECTS
Z_1_OBJECTS
Z_DEBUG
Z_1_DEBUG
Z_2_DEBUG
Z_TI_PROJECTS
Z_1_TI_PROJECTS

我想只保留行Z_OBJECTZ_TI_PROJECTSZ_DEBUG,删除包含1_等的行。

我在这里使用此功能,效果很好,但我认为Regex会更好:

int total = 22;
for (int i = 1; i <= total; i++)
{
    List<string> finalLines = richTextBox1.Lines.ToList();
    finalLines.RemoveAll(x => x.StartsWith("Z_" + i + "_"));
    richTextBox1.Lines = finalLines.ToArray();
}

我在Regex中得到的是:

richTextBox1.Text = Regex.Replace(richTextBox1.Text, @"^Z_\d*_", "", RegexOptions.Multiline);

这不会删除剩下的部分。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

只需延长线的其余部分的匹配:

@"^Z_\d+_.*$"

我认为如果你使用\d+(或[0-9]+)会更好,因为你明确地在下划线之间寻找数字。