尝试将文件中的文件名与C#REGEX匹配

时间:2014-03-16 04:56:28

标签: c# regex

我试图从二进制文件中提取MP3文件名。我试图让这个正则表达式匹配所有的MP3和WAVE文件..这是我到目前为止...

System.Text.RegularExpressions.MatchCollection  m = System.Text.RegularExpressions.Regex.Matches(rosText, @"(\w:\\(?:\w+(?:\s+\w+)*\\)*[-_\w\s\d.\(\)\'\[\]]*\.mp3)",System.Text.RegularExpressions.RegexOptions.IgnoreCase);

匹配 C:\ mp3 \ Miami House \ New Adds 49 \ Jungle_EP_(Life_In_The_Jungle_'Original_Mix') - SL-51-1(320k).mp3

不匹配 C:\ mp3 \ Miami House \ New Adds 49 \ Each_& _Every_Day_Pt。 2 (Raw_Artistic_Soul_Vocal_Mix)-AR002-1(320k).mp3

C:\ mp3 \ Miami House \ New添加C:\ mp3 \ Miami House \ New Adds 49 \ Jungle_EP_(Life_In_The_Jungle_'Original_Mix') - SL-51-1(320k).wav

此处的文件示例(IN UTF-8) http://savinet.net/fileexample.txt

1 个答案:

答案 0 :(得分:0)

匹配此类文件的一个非常简单的正则表达式是:

string regex = @".*\.(mp3|wav)"

如果您能够将文件(在本例中位于/tmp目录中)解压缩到可以使用的目录中:

foreach (var file in Directory.EnumerateFiles ("/tmp", "*.mp3")) {
    try {
        //do something
    } catch {
        ; // optionally report error
    }
}
foreach (var file in Directory.EnumerateFiles ("/tmp", "*.wav")) {
    try {
        //do something
    } catch {
        ; // optionally report error
    }
}