我想删除包含两个下划线之间的数字的richtextbox的行。
在richtextbox上,我有以下值(示例):
Z_OBJECTS
Z_1_OBJECTS
Z_DEBUG
Z_1_DEBUG
Z_2_DEBUG
Z_TI_PROJECTS
Z_1_TI_PROJECTS
我想只保留行Z_OBJECT
,Z_TI_PROJECTS
和Z_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);
这不会删除剩下的部分。
感谢任何帮助。
答案 0 :(得分:2)
只需延长线的其余部分的匹配:
@"^Z_\d+_.*$"
我认为如果你使用\d+
(或[0-9]+
)会更好,因为你明确地在下划线之间寻找数字。