C#Regex Expression从文件路径中获取某些单词

时间:2015-03-10 15:58:10

标签: c# regex arraylist foreach

嘿伙计们正在编写一个c#应用程序,我似乎无法使用正则表达式将数据拆分为id。

C:\Users\e014425c\Downloads\StoreData\ABE1102013.csv

这是在循环中以字符串形式存储的。我想要: -

 ABE1
 10
 2013

从那里我将各个字符串存储到3个数组中。 问题是,在循环内数据会发生变化,因此您无法使用Contains("ABE1")

非常感谢帮助!

foreach (string word in file)
{

    string testString = word;
    string firstWords = Regex.Match(testString, @"^(\w+\b.*?){6}").ToString();

    Console.Write(firstWords);
}

这就是我如何测试数据

1 个答案:

答案 0 :(得分:2)

首先只从路径中获取文件名:

string filename = File.FilenameWithoutExtension(path);

然后使用SubString()所需的字符:

string a1 = filename.SubString(0, 4);
string a2 = filename.SubString(4, 2);
string a3 = filename.SubString(6, 4);

<小时/>

修改

使用一般模式“ABC1_xy_YYYY”最好使用下划线作为分隔符:

 string[] field = filename.Split('_');
 a1 = field[0];
 ...