简体   繁体   English

尝试使用C#REGEX匹配文件中的文件名

[英]Trying to match filenames in file with C# REGEX

Im trying to extract MP3 filenames from binary file. 我试图从二进制文件中提取MP3文件名。 Im trying to get this regular expression to match all mp3 AND WAVE files.. Here is what I have so far.. 我正在尝试获取此正则表达式以匹配所有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);

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

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

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

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

A very simple regex to match such files is: 匹配此类文件的非常简单的正则表达式为:

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

If you are however able to extract the files (in this case in the /tmp directory) into a directory you can use: 但是,如果您能够将文件(在这种情况下位于/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
    }
}

as well. 也一样

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM